Właśnie stworzyłem aplikację wygaszacza ekranu i znalazłem dziwne zachowanie w jej cyklu życia. Moje przepływu pracy jest tak:Dziwne zachowanie się cyklu życia w mojej aplikacji wygaszacza ekranu
- rozpocząć mój
RegisterService
, gdzie zadzwonićregisterReceiver
sposób zarejestrowaćBroadcastReceiver
, który może odbieraćACTION_SCREEN_OFF
.
2. W metodzie 2 tej BroadcastReceiver
, uruchamiam działanie jako wygaszacz ekranu.
3. W ćwiczeniu piszę instrukcję Log.i()
, aby śledzić jej działanie.
Moje pytanie brzmi:
Gdy czasy się ekran, lub po naciśnięciu przycisku zasilania, ekran wyłączy się, a system wyśle wiadomość ACTION_SCREEN_OFF. Tak jak się spodziewam, mój odbiornik uruchamia działanie wygaszacza ekranu. Jednak ta funkcja dzwoni onCreate()
, onResume()
, onPause()
, onResume()
sekwencyjnie zgodnie z wynikiem w logcat.
Wydaje się jakby jakaś aktywność pochodzi z przodu mojego ekranu i kończy się natychmiast, więc mój wygaszacz ekranu nazywa onPause()
a następnie onResume()
.
Każdy pomysł? Ten problem utrudnia programowanie, proszę o pomoc. Dzięki!
jaki problem to powoduje? – njzk2