Android AlarmManager Javadoc состояния
Когда срабатывает сигнал тревоги, то намерение, которое было зарегистрировано для него, транслируется системой,
Существует AlarmService
(пакет com.example.android.apis.app) в поставляемых демоверсиях API. с Android, которые демонстрируют использование AlarmService.
В нем у нас есть следующее (отредактировано для ясности):
PendingIntent mAlarmSender = PendingIntent.getService(AlarmService.this,
0, new Intent(AlarmService.this, AlarmService_Service.class), 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 30*1000, mAlarmSender);
Итак, в этом примере он не выполняет PendingIntent mAlarmSender = PendingIntent.getBroadcast (...);
вместо этого выполняет getService
, о котором Javadoc никогда не упоминает.
Причина, по которой я спрашиваю об этом, связана с последствиями блокировки пробуждения ЦП. Javadoc сообщает, что блокировка пробуждения AlarmManger будет снята после возврата широковещательного приемника onReceive ()
.
Что меня интересует, так это каковы последствия блокировки пробуждения, если вы используете Будильник, как в примере? Javadoc, похоже, не рассматривает это. Во всяком случае, это подразумевает, что вы должны использовать технику широковещательной передачи при установке сигналов тревоги.