2016-07-12 6 views
0

Ich würde gerne wissen, warum mein alarmmanager nur funktioniert, wenn ich die Stunde in "AM" im Zeitpicker einstelle. Selbst wenn es 19:00 Uhr ist (und so ist es auf dem Telefon), wird es nicht funktionieren, wenn ich den Wecker auf PM stelle, wie es für diese Zeit sein sollte, aber es wird funktionieren, wenn ich den Wecker für die "AM" Stunde setze.AlarmManager funktioniert nur für AM-Stunden

Wie Sie sehen können, funktioniert alle "AM" Stunden gut, aber wenn ich versuche, den Alarm für "PM" einzurichten, funktioniert es überhaupt nicht.

Calendar alarmCalendar = Calendar.getInstance(); 
alarmCalendar.set(Calendar.MONTH, month); 
alarmCalendar.set(Calendar.HOUR, hour); 
alarmCalendar.set(Calendar.MINUTE, minute); 

Intent alarm_on = new Intent(this, MainTaskAlarmReciever.class); 

alarm_on.putExtra("extra", "alarm on"); 

pendingIntent = PendingIntent.getBroadcast(this, 0, alarm_on, PendingIntent.FLAG_UPDATE_CURRENT); 

mAlarmManager.set(AlarmManager.RTC_WAKEUP, alarmCalendar.getTimeInMillis(), pendingIntent); 

Antwort

1

sollten Sie verwenden Calendar.HOUR_OF_DAY

Feldnummer für get und die Stunden des Tages anzeigt. HOUR_OF_DAY wird für die 24-Stunden-Uhr verwendet. Zum Beispiel bei 10: 04: 15.250 Uhr die HOUR_OF_DAY ist 22.

Calendar alarmCalendar = Calendar.getInstance(); 
alarmCalendar.set(Calendar.MONTH, month); 
alarmCalendar.set(Calendar.HOUR_OF_DAY, hour); 
alarmCalendar.set(Calendar.MINUTE, minute); 

Intent alarm_on = new Intent(this, MainTaskAlarmReciever.class); 

alarm_on.putExtra("extra", "alarm on"); 

pendingIntent = PendingIntent.getBroadcast(this, 0, alarm_on, PendingIntent.FLAG_UPDATE_CURRENT); 

mAlarmManager.set(AlarmManager.RTC_WAKEUP, alarmCalendar.getTimeInMillis(), pendingIntent); 
+0

Hallo Herr, jetzt der Alarmton für PM auch, wenn ich aber eine AM-Stunde einstelle, löst es auch den Alarm aus. Kannst du mir helfen, wie ich das verhindern kann? Vielen Dank – Jonny

+0

Haben Sie mehrere Alarme geplant? Verwenden Sie .cancel(), um alle Ihre Alarme zu löschen - oder starten Sie Ihr Gerät neu, um die ausstehenden Absichten zu löschen. Ich verstehe nicht ganz, ob das deine Probleme nicht löst. HOUR_OF_DAY ist entweder 7 oder 19 – apelsoczi

+0

Danke für Ihre Antwort. Ich denke, um zu verhindern, dass der Alarm in den vorherigen Stunden für diesen Tag ertönt, muss ich prüfen, ob die Stunde, die der Benutzer gerade eingestellt hat, schon vorbei ist. – Jonny