Ich versuche, eine Benachrichtigung jeden Tag um 6 Uhr mit Android AlarmManager zu senden. Die Benachrichtigung funktioniert einmalig und funktioniert nicht für andere Tage.Alarm Manager wiederholt sich nicht in Android
public class AlarmMsg extends WakefulBroadcastReceiver {
// set the alarm
public void setAlarm(Context context) {
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmIntent = PendingIntent.getBroadcast(context, 0, new Intent(context, AlarmMsg.class), 0);
Calendar firingCal = Calendar.getInstance();
Calendar currentCal = Calendar.getInstance();
firingCal.set(Calendar.HOUR, 6); // hour
firingCal.set(Calendar.MINUTE, 0);
firingCal.set(Calendar.SECOND, 0);
long intendedTime = firingCal.getTimeInMillis();
long currentTime = currentCal.getTimeInMillis();
if (intendedTime >= currentTime) {
// set from today
alarmManager.setRepeating(AlarmManager.RTC, intendedTime, AlarmManager.INTERVAL_DAY, alarmIntent);
} else {
// set from next day
firingCal.add(Calendar.DAY_OF_MONTH, 1);
intendedTime = firingCal.getTimeInMillis();
alarmManager.setRepeating(AlarmManager.RTC, intendedTime, AlarmManager.INTERVAL_DAY, alarmIntent);
}
}
und erstellen Sie die Meldung:
@Override
public void onReceive(Context context, Intent intent) {
// notification builder
}
und in meiner Haupttätigkeit Ich nenne nur die setalarm wie folgt aus:
new AlarmMsg().setAlarm(getApplicationContext());
dies eine Benachrichtigung bei 06.00 zeigt aber es zeigt nur 1 Benachrichtigung und es wiederholt sich nicht für die nächsten Tage. Ich möchte, dass die Benachrichtigung jeden Tag um 6 Uhr morgens angezeigt wird. Irgendwelche Ideen?
erwerben Sie eine [Wecksperre] (https://developer.android.com/reference/android/os/PowerManager.WakeLock.html) in onReceive – shadygoneinsane