Ich habe den folgenden Link https://developer.android.com/training/scheduling/alarms.html folgen.Einstellung Benachrichtigung mit AlarmManager durch Übergabe calendar.getTimeInMillis(), löst sofort Benachrichtigung nicht zum gewünschten Zeitpunkt
RTC Beispiele zuerst, um einen Alarm für eine bestimmte Zeit an allen Tagen einzustellen. Auch nach dem Folgen des gleichen Codes wird der Alarm nicht zu der Zeit ausgelöst, zu der er ausgelöst werden soll. Stattdessen wird die notification
sofort nach dem Einstellen der Zeit ausgelöst, die mit Hilfe einer Zeitauswahl erfolgt. Es folgt mein Code-Schnipsel,
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, NotificationReceiver.class);
PendingIntent intentalarm = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY,4);
calendar.set(Calendar.MINUTE, 30);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, intentalarm);
Statt setRepeating
Ich habe auch versucht setInexactRepeating
aber es gab würde kein luck.I auch, dass hinzufügen, wenn es das geändert
calendar.getTimeInMillis()
und verwenden SystemClock.elapsedRealtime() + 120 * 1000
der Alarm ausgelöst genau nach 2 Minuten von der Zeit, als es eingestellt wurde.
Aber wenn calendar.getTimeInMillis()
verwendet wird, geschieht die beabsichtigte Arbeit nicht stattdessen stattdessen sofortige Auslösung auftritt.
Wäre in der Tat sehr hilfreich, wenn jemand mir helfen kann, eine Lösung zu finden. Nur für eine Anmerkung, könnte ich lernen, wenn Alarm vor der aktuellen Gerätezeit gesetzt wird, würde der Alarm sofort ausgelöst werden, aber das ist hier nicht der Fall.
NotificationReceiver.class
funktioniert einwandfrei, wie es generiert wird und auf dem Titel angezeigt wird. Aber die Zeit, die es erscheint, ist der Grund zur Sorge.