Я только что разработал приложение для заставки экрана и обнаружил странное поведение в его жизненном цикле.
Мой рабочий процесс выглядит так:
- начать мой
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](https://i.stack.imgur.com/3Aut9.png)
Есть идеи? Эта проблема мешает мне в программировании, пожалуйста, помогите. Спасибо!