#android #android-intent #onresume
#Android #android-намерение #onresume
Вопрос:
Есть ли какой-либо способ отличить в onResume () между двумя случаями:
1) действие выводится на передний план, потому что оно было запущено намерением из другого действия
2) onResume activity вызывается без нового намерения (например, экран был выключен и включен, или, возможно, в других ситуациях, когда действие не было запущено пользователем явно)
В первом случае я хочу выполнить некоторые длительные операции, например загрузить данные из Интернета.
Во втором случае я не хочу ничего делать (потому что пользователь явно не спрашивал, но экран просто погас на секунду)
Я имею в виду ситуации, когда activity не воссоздается и его onCreate не вызывается. (если воссоздано, мне все равно нужно выполнить длительную операцию)
Насколько я пытался в обоих случаях, GetIntent () возвращает исходное намерение. В обоих случаях onNewIntent не вызывается.
Спасибо.
Ответ №1:
Проверьте диаграмму состояний здесь:
http://developer.android.com/reference/android/app/Activity.html
Между обеими ситуациями есть несколько различий. В частности, onPause, onStop и onRestart вызываются только при возобновлении работы приложения. Я думаю, что лучше всего включить логический флаг во всех этих методах, который отключен при onCreate.
Комментарии:
1. Спасибо. Это помогло в случае включения / выключения экрана (в этом случае OnStart не вызывается).