Следующий сценарий: 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?
}