У меня есть следующий сценарий с 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