Состояние жизненного цикла компонентов архитектуры Android

https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.State.html

STARTED Lifecycle.State STARTED Для действия это состояние достигается в двух случаях: после вызова onStart; прямо перед вызовом onPause.

Как сказано в приведенной выше документации, я не мог понять причину состояния STARTED прямо перед вызовом onPause. Может кто-нибудь объяснить это?

1 ответ

Решение

Обратите внимание, что значения в Lifecycle.Stateenum не включать PAUSED государство. Есть только пять состояний: CREATED, DESTROYED, INITIALIZED, RESUMED, STARTED, Они не совсем соответствуют нормальному жизненному циклу Activity, который мы все знаем и любим:

Состояния жизненного цикла

Также обратите внимание на следующее из документации класса Lifecycle:

События ON_CREATE, ON_START, ON_RESUME в этом классе отправляются после возврата связанного с LifecycleOwner метода. События ON_PAUSE, ON_STOP, ON_DESTROY в этом классе отправляются до вызова связанного с LifecycleOwner метода

Исполнение onPause() является закрывающей границей для RESUMED государство. На данный момент, активность больше не считается RESUMED и это конечно не DESTROYED, Так как у нас нет PAUSED заявить, что это следует теперь должно быть в STARTED государство. Технически это верно, действие еще не остановлено, но больше не возобновляется.

Другие вопросы по тегам