Предотвратите уничтожение действия операционной системой при запуске дочернего действия - PullRequest
0 голосов
/ 18 июня 2010

У меня есть основное занятие, которое вызывает ребенка через

Intent I = new Intent(this, Child.class);
startActivityForResult(I, 0);

Но как только Child становится видимым, основное действие получает свой onStop и сразу после этого срабатывает метод onDestroy . И как только я вызываю finish () в рамках действия Child или нажимаю кнопку "Назад", действие Child закрывается, и на главном экране отображается (вместо основной вид деятельности).

Как я могу предотвратить уничтожение основной деятельности? : \

Ответы [ 3 ]

1 голос
/ 18 июня 2010

Если вы запускаете дочернюю активность, по которой вы ожидаете возврат данных, вы, вероятно, захотите использовать startActivityforResult.

Возможно, вы захотите проверить этот вопрос: дочерняя активностьв Android , как кажется, та же проблема.

Edit:

Что касается того, что здесь происходит, вы можете поместить код в onStop() и / или onDestroy() методы для расследования - по крайней мере, вызов isFinishing(), чтобы проверить, почему уничтожается активность.
Вы также должны использовать adb logcat с хост-машины, чтобы проверить logcat на случай, еслибольше информации - и, возможно, используйте Log.d() (результат также входит в logcat) вместо тостов, чтобы убедиться, что вы не пропустите их.

0 голосов
/ 26 декабря 2012

check androidmanifest nohistory = true, и это заставило ОС уничтожить активность до результата.это может быть одной из причин вашей проблемы.

0 голосов
/ 19 июня 2010

Я использовал Dialog вместо Activity, и все работало хорошо, поэтому я оставляю это так.

...