Жизненный цикл Activity onStop () не вызывается сразу, когда Activity переходит в жизненный цикл onPause (). - PullRequest
0 голосов
/ 10 января 2019

У меня есть следующий сценарий с PlayerActivity.

Когда я нажимаю кнопку «Назад» на проигрывателе (во время воспроизведения), PlayerActivity вызывает onPause(), затем onStop() и, наконец, onDestroy(), как и ожидалось.

Однако, когда я заставляю PlayerActivity переходить в состояние паузы (например, инициировать голосовой поиск), а затем разрешать ему переходить в возобновленное состояние (путем выхода из голосового поиска), а затем нажимать кнопку возврата действия onStop() и onDestroy() методы не вызываются - вызывается только onPause().

Итак, мой вопрос заключается в следующем: есть ли причина, по которой onStop() не вызывается, даже если действие больше не отображается?

Это журналы, помогающие визуализировать этот сценарий:

Normal activity lifecycle for player:
01-10 18:44:58.799 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onCreate()
01-10 18:44:58.916 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onStart()
01-10 18:44:58.917 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onResume()
Back button pressed on PlayerActivity:
01-10 18:45:14.768 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onPause()
01-10 18:45:14.968 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onStop()
01-10 18:45:14.968 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onDestroy()
PlayerActivity destroyed.

Player initiated second time:
01-10 18:45:21.874 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onCreate()
01-10 18:45:21.899 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onStart()
01-10 18:45:21.899 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onResume()
Voice control is initiated on TV remote - causes Activity to PAUSE state
01-10 18:45:27.180 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onPause()
Voice control finished causing Activity to RESUMED state
01-10 18:45:29.414 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onResume()
Back button pressed on PlayerActivity
01-10 18:45:32.160 27817-27817/com.google.android.exoplayer2.demo D/PlayerActivity: onPause()
// This is it - Activity’s onStop() and onDestroy() not called
...