Android AlarmManager Javadoc сообщает
When an alarm goes off, the Intent that had been registered for it is broadcast by the system,
В демоверсиях API есть AlarmService
(пакет com.example.android.apis.app)поставляется с 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никогда не ссылается на.
Причина, по которой я спрашиваю об этом, связана с последствиями пробуждения CPU.В Javadoc говорится, что блокировка будильника AlarmManger будет снята после возврата onReceive()
получателя широковещательной рассылки.
Что мне интересно, каковы последствия блокировки пробуждения, если вы используете сигнал тревоги, как в примере?Javadoc, кажется, не решает эту проблему.Во всяком случае, кажется, что вы должны использовать технику вещания при установке будильника.