IntentService - получение Wakelock в onCreate против onHandleIntent - PullRequest
0 голосов
/ 15 ноября 2018

Следующий сценарий: IntentService запускается с Activity (поэтому экран включен).В этом процессе 1 или многие intents могут быть отправлены (который затем IntentService выполняется последовательно).Это означает, что onHandleIntent может выполняться 1 раз, но также может запускаться 20 раз.

В этом сценарии Wakelock должно быть acquire d и release d вonHandleIntent или в onCreate / onDestroy?

Если Wakelock равен acquire d в onHandleIntent и release d в конце этого метода, может ли устройство заснутьв момент до начала следующего intent?

//THIS COULD RUN 20 TIMES IN A ROW
@Override
protected void onHandleIntent(@Nullable Intent intent) {
    PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
    PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
            , "WakeLock:");
    wakeLock.acquire();

    //do a few seconds of blocking work

    wakeLock.release();
    //can the device fall asleep before the next onHandleIntent?
}
...