Nie powinieneś zajmować się , gdy urządzenie wchodzi w tryb drzemki, a raczej z jak zachowuje się moja aplikacja, gdy telefon jest w trybie drzemki. Aby to sprawdzić, wystarczy zmusić telefon do drzemki i przestrzegać swojej aplikacji zachowanie:
$ adb version
Android Debug Bridge version 1.0.32
Revision eac51f2bb6a8-android
$ adb shell dumpsys deviceidle | grep mState
mState=ACTIVE
$ adb shell dumpsys deviceidle force-idle
Now forced in to idle mode
$ adb shell dumpsys deviceidle | grep mState
mState=IDLE
Jeszcze lepiej, należy przetestować aplikację w każdych różnych pre-drzemać stanów:
$ adb shell dumpsys deviceidle step
Stepped to: ACTIVE
$ adb shell dumpsys battery unplug # emulate unplugging the charging cable
$ for i in {1..5}; do adb shell dumpsys deviceidle step; done
Stepped to: IDLE_PENDING
Stepped to: SENSING
Stepped to: LOCATING
Stepped to: IDLE
Stepped to: IDLE_MAINTENANCE
# repeats IDLE and IDLE_MAINTENANCE forever
$ adb shell dumpsys battery reset
$ adb shell dumpsys deviceidle step
Stepped to: ACTIVE
Powinieneś przetestować swoją aplikację we wszystkich powyższych stanach, aby zapewnić poprawne działanie. Zobacz także official documentation.
Teraz, jeśli nalegać na znając parametry drzemki i konserwacji, należy zapoznać się z pełną moc adb shell dumpsys deviceidle
. Gdy urządzenie jest IDLE
, pod koniec wyjściu widać:
mNextAlarmTime=+59m35s863ms
która wywodzi się z:
idle_to=+60m0s0ms
Ponadto, jeżeli telefon jest budzony przez użytkownika, następny limit czasu bezczynności będzie większy, wpływ tego parametru:
mNextIdleDelay=+2h0m0s0ms
itd. Jestem świadoma żadnej oficjalnej dokumentacji na ten temat, więc wziąć moją interpretację z przymrużeniem oka.
To samo pytanie. Ponieważ bardzo trudne jest sprawdzenie, jak nasza aplikacja będzie się zachowywać w trybie drzemki i jak poradzić sobie z tą sytuacją. – Smeet