Android: AlarmManager подводные камни - PullRequest
2 голосов
/ 16 мая 2011

В своем будильнике я использую следующий код для включения сигналов:

Intent i = new Intent(AlarmReciever.ACTION_WAKEUP);
i.putExtra(AlarmDao.ID_COLUMN, a.getId());
PendingIntent pendingIntent = PendingIntent.getBroadcast(
                        context, a.getId(), i, PendingIntent.FLAG_CANCEL_CURRENT);      
Calendar cal = a.getNextAlarm();
if(cal!=null){
    AlarmManager alarmManager = (AlarmManager)
                         context.getSystemService(context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
    if(toast) showToast(context, cal);
}

Мой ресивер запускает службу, которая воспроизводит музыку и показывает диалог «выключения».

context.startService(wakePlayer);
context.startActivity(wakeWindow);

Проблема с этим кодом в том, что иногда он не работает.Я имею в виду, что он не запускает музыку и не показывает диалог.Кто-нибудь сталкивался с такой же проблемой?

1 Ответ

1 голос
/ 16 мая 2011

Может быть, вам нужно использовать WakeLock.Пожалуйста, проверьте следующее:

...