2017-02-23 3 views
0

Ich erstelle eine Anwendung, wo Sie die Möglichkeit haben, tägliche Benachrichtigungen zu einer anpassbaren Zeit einzustellen. Wenn Sie einen Schalter betätigen, wird ein Zeitauswahldialog angezeigt. Wenn Sie eine Zeit auswählen, wird ein AlarmManager eingerichtet, der jedoch nur einmal - zur richtigen Zeit, aber nur einmal - ausgelöst wird.Android AlarmManager feuert nur einmal

Ich habe StackOverflow gegraben, kann aber nichts Nützliches finden. Hier ist der relevante Teil meines Codes (Sie den Rest here finden):

mAlarmManager = (AlarmManager) SettingsActivity.this.getSystemService(ALARM_SERVICE); 
Intent intent = new Intent(SettingsActivity.this, AlarmReceiver.class); 
PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(SettingsActivity.this, 
       0, intent, PendingIntent.FLAG_CANCEL_CURRENT); 

Calendar calendar = getTimeForNotification(); 
if(shouldHaveAlreadyNotified(calendar)){ 
    calendar.add(Calendar.DATE, 1); 
    } 
mAlarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 
     24 * 60 * 60 * 1000, alarmPendingIntent); 
+0

Versuchen Sie dies: 'mAlarmManager.setRepeating (AlarmManager.ELAPSED_REALTIME_WAKEUP, ...);' – AnixPasBesoin

+0

Danke, ich werde es so bald wie möglich versuchen. –

Antwort

0

es AlarmManager.ELAPSED_REALTIME_WAK‌​EUP Änderung machte es, dass keine Meldungen überhaupt gemacht wurden. Ändern Sie es in AlarmManager.RTC_WAKEUP behoben das Problem!

Vielen Dank für alle, die Lösungen vorgeschlagen haben.