Мне очень нравится раздел AlarmManager в книге CWAC Advanced для Android. Теперь я беспокоюсь о том, что работа моего приложения может быть убита, потому что у него нет блокировки пробуждения. Вот что меня беспокоит. Мое беспокойство рационально?
См. Код ниже. Что, если doWakefulWork должен запустить другой сервис? В этом случае другой службе необходимо установить WakeLock для продолжения работы, однако существует разрыв во времени между запуском службы и окончанием onHandleIntent, когда может быть освобожден wakelock!
@Override
final protected void onHandleIntent(Intent intent) {
try {
doWakefulWork(intent)
}
finally {
getLock(this).release();
}
}
Мой ответ:
doWakefulWork должен выполняться в том же потоке, он не может запускать другие потоки или службы, если другие службы также не являются экземплярами WakefulIntentService.
Я прав?