2012-10-29 10 views
5

Jeśli zadzwonię startActivityForResult i aktywność, która rozpoczyna się również nazywając startActivityForResult na inną działalność,
to możliwe, że pierwsza czynność zostanie zatrzymany?
Czy istnieje sposób, aby temu zapobiec?
W jakim kontekście powinienem podać każdy zamierzony przeze mnie zamiar?startActivityForResult wewnątrz startActivityForResult

jakiś kod, aby dowiedzieć się proces

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

Myślę, że jest to związane z flagą braku historii w mojej głównej działalności ... –

Odpowiedz

2

W każdym przypadku (albo jego startActivity lub startActivityForResult), po uruchomieniu nowej działalności, aktualna Activity trafi do zatrzymał stanu poprzez podniesienie jego metodę onStop . Jest zaprojektowany w ten sposób. Nie ma nic wspólnego z rodzajem kontekstu.

Jednakże, jeśli nie chcesz wystąpić onStop, wtedy być może możesz spróbować emulacji oczekiwany view (s) przez Dialogs który spowoduje, że aktywny dotrzeć aż do jego stanu .

+0

Czy mogę otworzyć okno dialogowe w oknie dialogowym? lub czy dialog powinien otwierać działania? –

+0

Powinieneś kontynuować czynności, jeśli wymagania dotyczące widoku są złożone. Dlaczego chcesz uniknąć użycia funkcji onStop w aktywności rodzica? – waqaslam

+0

Przyczyna z jakiegoś dziwnego powodu, do którego dochodzę w Destroy ... i nie mogę wrócić do działania. –

Powiązane problemy