2012-10-29 5 views
5

Nếu tôi gọi startActivityForResult và hoạt động bắt đầu cũng đang gọi startActivityForResult trên hoạt động khác,
có thể hoạt động đầu tiên sẽ bị dừng lại không?
Có cách nào để ngăn chặn điều đó xảy ra không?
Tôi nên tạo ngữ cảnh nào cho mỗi ý định tôi tạo ra?startActivityForResult bên trong startActivityForResult

một số mã để tìm các quá trình

intent = new Intent(MainActivity.this, SettingsActivity.class); 
startActivityForResult(intent, AbstractSettingsActivity.SETTINGS_ACTIVITY_REQUEST_CODE); 

// this is inside the Settings activity 
Intent intent = new Intent(getBaseContext(), SettingsTabsActivity.class); 
startActivityForResult(intent, CUSTOMIZE_TAB_REQUEST_CODE); 
// at this point i got ondstroy on main activity - main is not the root 
+0

Vâng, tôi nghĩ nó liên quan đến cờ lịch sử không có trên hoạt động chính của tôi ... –

Trả lời

2

Trong mọi trường hợp (hoặc startActivity hoặc startActivityForResult của nó), khi bạn bắt đầu một hoạt động mới, hiện Activity của bạn sẽ đi vào ngừng nhà nước bằng cách tăng phương pháp onStop của nó . Cách của nó Android's Activity life-cycle được thiết kế. Nó không liên quan gì đến một loại ngữ cảnh.

Tuy nhiên, nếu bạn không muốn xảy ra onStop, thì có lẽ bạn có thể thử mô phỏng (các) chế độ xem dự kiến ​​thông qua Dialogs sẽ khiến Hoạt động của bạn đạt đến trạng thái .

+0

Tôi có thể mở hộp thoại bên trong hộp thoại không? hoặc hộp thoại sẽ mở hoạt động? –

+0

Bạn nên tiến hành các hoạt động nếu yêu cầu xem của bạn phức tạp. Tại sao bạn muốn tránh onStop trong hoạt động gốc của bạn? – waqaslam

+0

Nguyên nhân vì một lý do lạ lùng nào đó tôi bị onDestroy ... và không thể quay lại hoạt động. –