In meiner Anwendung ich eine Funktionalität Alarm auszulösen in 4 senerios:Wiederholung Alarm für bestimmte Tage der Woche android
- nur einmal für einen Benutzer gewählten Datum und die Uhrzeit
- täglich für gewählte Zeit
- wöchentlich nach gewähltem Datum und Uhrzeit
- Benutzer gewählten individuelle Tage der Woche
ich erfolgreich umzusetzen die erste 3 senerios durch die Folge mit:
Nur einmal:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, Integer.parseInt(date[0]));
calendar.set(Calendar.MONTH, (Integer.parseInt(date[1])) - 1);
calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(date[2]));
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(time[0]));
calendar.set(Calendar.MINUTE, Integer.parseInt(time[1]));
calendar.set(Calendar.SECOND, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Für tägliche Disposition:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(time[0]));
calendar.set(Calendar.MINUTE, Integer.parseInt(time[1]));
calendar.set(Calendar.SECOND, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
Für Wochenzeitschaltpro- (nach Systemdatum):
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.DAY_OF_WEEK, dayOfWeek);
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(time[0]));
calendar.set(Calendar.MINUTE, Integer.parseInt(time[1]));
calendar.set(Calendar.SECOND, 0);
//long interval = calendar.getTimeInMillis() + 604800000L;
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 7, pendingIntent);
Für benutzerdefinierte Wochentage, die vom Benutzer ausgewählt wurden (z. nur für Montag und Freitag, wiederholt wöchentlich) Ich verwende den gleichen Code, den ich für die wöchentliche Planung durch Iteration verwendet habe. Aber es funktioniert nicht für Montag (der vor Freitag eingestellt wird) und arbeitet für Freitag. Außerdem wird der Alarm für heute nicht ausgelöst, wenn heute (Systemdatum) ein Montag oder Freitag ist.
Wie kann ich die wöchentliche Alarmplanung für benutzerdefinierte Wochentage implementieren?
Ich weiß nicht viel darüber, aber können Sie Alarme in der Absicht, die Sie auslösen, starten/stoppen? Wenn dies der Fall ist, nachdem der Alarm beispielsweise am Montag ausgelöst wurde, können Sie diesen Alarm stoppen und den Freitag starten? –