Ich habe viele Artikel gelesen, aber nicht scheint für mich zu arbeiten!Android Alarm Manager, um eine Aufgabe zu einer bestimmten Zeit
Ich muss eine wiederkehrende Aufgabe mit AlarmManager für jeden Tag um 7:15 Uhr planen. Die folgende Methode wird in einer Aktivität festgelegt und ein Broadcast-Empfänger dafür registriert!
private void setTask(Context context) {
Calendar updateTime = Calendar.getInstance();
updateTime.setTimeZone(TimeZone.getTimeZone("GMT"));
updateTime.set(Calendar.HOUR_OF_DAY, 7);
updateTime.set(Calendar.MINUTE, 15);
Intent intent = new Intent(context, NotifyUpdate.class);
PendingIntent fireAlarm = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarms = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarms.setRepeating(alarms.RTC_WAKEUP, updateTime.getTimeInMillis(), alarms.INTERVAL_DAY, fireAlarm);
}
Das Problem ist, wenn ich die Anwendung des Verfahren sofort ausgeführt, unabhängig von der eingestellten Zeit ausgeführt wird, aber nicht auf (7,15) ausführen.
Irgendeine Idee?
Ist die Klasse 'NotifyUpdate' ein' Service' oder ein 'BroadcastReceiver'? – devnull69
Danke für die Antwort! Es ist ein BroadcastReceiver –
Der Alarm scheint in Ordnung zu sein. Die Abweichung kann woanders liegen ... Sind Sie sicher, dass Sie die Methode nicht manuell vom BroadcastReceiver aus aufrufen? Außerdem kann der Android6 + Doze-Modus den AlarmManager stören, wenn Sie Ihre App nicht zur Optimierungsausnahmeliste hinzugefügt haben. – devnull69