Я только что разработал приложение-хранитель экрана и обнаружил странное поведение в его жизненном цикле. Мой рабочий процесс выглядит следующим образом:
RegisterService
, где я вызываю метод registerReceiver
для регистрации BroadcastReceiver
, который может получать ACTION_SCREEN_OFF
. 2. В методе onReceive
этого BroadcastReceiver
я запускаю действие в качестве заставки.
3. В действии я пишу Оператор Log.i ()
для отслеживания его работы.
Мой вопрос:
Когда экран отключается, или когда я нажимаю клавишу POWER, экран выключается, и система отправляет сообщение ACTION_SCREEN_OFF . Как я и ожидал, мой приемник запускает экранную заставку. Однако я обнаружил, что это действие вызывает onCreate ()
, onResume ()
, onPause ()
, onResume ()
последовательно в соответствии с вывод в logcat.
Кажется, что какое-то действие появляется перед моей заставкой и немедленно завершается, поэтому моя заставка вызывает onPause ()
, а затем onResume ()
.
Есть идеи? Эта проблема мешает мне программировать, пожалуйста, помогите. Спасибо!