Странное поведение в жизненном цикле в моем приложении "Экранная заставка"

Я только что разработал приложение-хранитель экрана и обнаружил странное поведение в его жизненном цикле. Мой рабочий процесс выглядит следующим образом:

  1. запускает мою RegisterService , где я вызываю метод registerReceiver для регистрации BroadcastReceiver , который может получать ACTION_SCREEN_OFF .

2. В методе onReceive этого BroadcastReceiver я запускаю действие в качестве заставки.

3. В действии я пишу Оператор Log.i () для отслеживания его работы.

Мой вопрос:

Когда экран отключается, или когда я нажимаю клавишу POWER, экран выключается, и система отправляет сообщение ACTION_SCREEN_OFF . Как я и ожидал, мой приемник запускает экранную заставку. Однако я обнаружил, что это действие вызывает onCreate () , onResume () , onPause () , onResume () последовательно в соответствии с вывод в logcat.

Кажется, что какое-то действие появляется перед моей заставкой и немедленно завершается, поэтому моя заставка вызывает onPause () , а затем onResume () . enter image description here

Есть идеи? Эта проблема мешает мне программировать, пожалуйста, помогите. Спасибо!

7
задан Bill the Lizard 27 July 2011 в 15:17
поделиться