2016-07-12 8 views
0

タイムピッカーで時間を"AM"に設定すると、私のalarmanagerが動作するのはなぜですか。午後7時であっても、それは電話の上にあっても、その時間になるはずのPMにアラームを設定すると機能しませんが、"AM"時間のアラームを設定すると機能します。AlarmManagerは午前0時にしか動作しません

ご覧のとおり、"AM"時間はすべて正常に機能しますが、"PM"のアラームを設定しようとすると、まったく動作しません。

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); 

答えて

1

あなたは一日の時間を示すgetおよびセットのためのCalendar.HOUR_OF_DAY

フィールド番号を使用する必要があります。 HOUR_OF_DAYは24時間制で使用されます。例えば、10時:04:15.250 PM HOUR_OF_DAYは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

私はAM時間を設定するとアラームも鳴りますが、今度はPMのアラーム音になります。これが起こらないようにするにはどうすれば助けてくれますか?ありがとうございます – Jonny

+0

複数のアラームがスケジュールされていますか?保留中のインテントが配信されないようにするには、.cancel()を使用してすべてのアラームをクリアするか、デバイスを再起動します。これがあなたの不幸を解決しないかどうかは完全にはわかりません。 HOUR_OF_DAYは7または19です – apelsoczi

+0

あなたの答えをありがとう。私は、その日の前の時間にアラームが鳴らないようにするために、ユーザーが設定している時間が既に過ぎているかどうかを確認する必要があると私は思う。 – Jonny

関連する問題