Есть ли способ узнать, возобновляется ли действие (например, onResume) из главного экрана/запуска?Есть ли способ отличить Android Activity onResume от главного экрана?
Например, если у меня есть приложение с двумя видами деятельности, A и B.
Сценарий 1: Некоторые действия пользователя на активность A будет вызывать активность B, в результате чего его на передний план - двигательную активность A в фоновом режиме. Когда активность A перемещается в фоновый режим, она проходит через onPause() и onStop(). Пользователь (теперь на Activity B) либо завершает Activity, либо нажимает кнопку «назад», возвращая Activity A на передний план, вызывая последовательность onRestart(), onStart(), onResume().
Сценарий 2: Если пользователь нажимает кнопку «домой», а активность А на переднем плане, а затем повторно запускает приложения из пусковой установки, она проходит через тот же жизненный цикл, как и в сценарии 1. Т.е. Пользователь нажимает кнопку «домой». Активность проходит через onPause() и onStop(). Пользователь снова запускает приложение, заставляя Activity A вернуться на передний план, снова просматривая ту же последовательность onRestart(), onStart(), onResume(), что и в Сценарии 1.
Насколько я могу судить, Деятельность не имеет никакого способа узнать, как она была возобновлена, она просто знает, что она возвращается в поле зрения. На самом деле, я чувствую, что на самом деле нет понятия «приложение» в Android - в смысле чего-то, что имеет одну точку входа и выхода.
Зачем вам это нужно? – Macarse
Ах. На самом деле, я пытаюсь отслеживать количество запусков приложений - но пока не нашел способа различать разные сценарии onRestart(). –
Имейте в виду, что есть другие случаи, когда активность будет возобновлена, помимо использования кнопки «домой». Это новый запуск приложения, когда пользователь получает телефонный звонок, система убивает ваше приложение, а затем возобновляет его? Я думаю, будет лучше отслеживать взаимодействия в вашем приложении, а не «запуск», однако это определено. – sargas