Есть ли какой-либо способ отличить в onResume запуск действия из-за намерения от других случаев

#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 не вызывается).