Ich versuche AlarmManager zu verwenden, um eine wiederkehrende Aufgabe zu erfüllen. Ich benutze setInexactRepeating() und habe das Intervall alle 15 Minuten eingestellt (nur für Testzwecke), aber es scheint nicht zu funktionieren. Irgendwelche Ideen?Meine wiederkehrende Aufgabe wird nicht aufgerufen
Hier ist mein Code:
AlarmReceiver
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.w("CacheCrusader", "Recurring Job: Clearing Cache");
}
}
Setter
private void setRecurringAlarm(Context context) {
Calendar updateTime = Calendar.getInstance();
updateTime.set(Calendar.HOUR_OF_DAY, 20);
updateTime.set(Calendar.MINUTE, 15);
Intent downloader = new Intent(context, AlarmReceiver.class);
PendingIntent recurringDownload = PendingIntent.getBroadcast(context,
0, downloader, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarms = (AlarmManager) getSystemService(
Context.ALARM_SERVICE);
alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP,
updateTime.getTimeInMillis(),
AlarmManager.INTERVAL_FIFTEEN_MINUTES, recurringDownload);
}
-Code, der den Setter
Context context = getApplicationContext();
setRecurringAlarm(context);
Android Manifest Erklärung Sets
Im Logcat werden keine Fehler generiert ... der Alarm wird nur nicht ausgelöst
Rechts. Das ungenaue Ding setzt einen Boden. Ihr Alarm wird nicht öfter als 15 Minuten auftreten. Die obere Grenze ist größer als das. – Argyle
Danke für deine Antwort ... Leider habe ich über 4 Stunden gewartet und der Alarm wurde immer noch nicht ausgelöst. –
Vielleicht stürzt Ihre App ab? Das würde die Alarme löschen. In jedem Fall ist die Verwendung von 'set()' und die manuelle Registrierung des nächsten Alarms die zuverlässigste Art, Alarme zu verwenden. Vielleicht möchten Sie es versuchen. –