20

У меня есть приложение. Для начала работы я использую startActivity().onStart of new Activity вызывается перед onStop родителя

Может ли кто-нибудь на самом деле сказать мне, почему система звонит onStart() новых действий, а не родителей onStop()? Возможно ли это (без системной ошибки)?

Я нашел Fragment onStop() being called directly after onStart() - WHY? ответ, но я не получил ничего общего с Фрагментами и с помощью библиотеки поддержки Android. Я застрял, потому что я использую RoboSpice, и он должен содержать правильные синхронизированные методы в onStart и onStop. Я не могу, потому что система вызывает его в неправильном порядке.

Я также использую библиотеки GCM и Analytics в этом приложении.

+0

Вы используете tabgroupActivity? – dd619

ответ

26

Если вы прочитали сообщение Activity Lifecycle documentation, то onStop вызывается только тогда, когда текущая операция заменяется новой (или предыдущей).

Для того чтобы это произошло другое приложение, чтобы начать или возобновить ... в противном случае было бы разрыв

OnPause текущей деятельности (я бы ожидать) Вызывается перед OnStart замещающего деятельности

+6

Теперь я вижу, что чтение документации для второго, третьего (и т. Д.) Времени всегда может принести что-то новое для знания. 'onStop()' is "вызывается, когда действие больше не отображается пользователю, потому что возобновлено другое действие ** **« – cadavre

+2

Мне потребовалось некоторое время, чтобы определить, что onPause может быть более полезным, чем onStop тоже :) –

+1

Да, игра между 'onPause()' и 'onStop()' может закончиться забавными способами. Я знаю, что использование «start()» и «shouldStop()» для RoboSpice для 'onResume()' и 'onPause()' не может быть отличной идеей, но это единственный способ (на данный момент) иметь только один экземпляр RoboManager разделяет действия. (для будущих ответов) – cadavre