2016-07-12 5 views
0

시간 알림에서 시간을 "AM" (으)로 설정할 때 alarmmanager가 작동하는 이유를 알고 싶습니다. 오후 7시 (그리고 전화 상으로) 일지라도 그 시간 동안 알람을 PM으로 설정하면 작동하지 않지만 "AM" 시간 알람을 설정하면 작동합니다.AlarmManager는 AM 시간에만 작동합니다

알다시피, 모두 "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 및 set를위한 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

안녕하세요, PM의 알람 소리도 들리지만 오전 시간으로 설정하면 알람이 울립니다. 어떻게 이런 일이 일어나지 않도록 내가 도와 줄 수 있니? 감사합니다. – Jonny

+0

여러 개의 알람이 예약되어 있습니까? .cancel()을 사용하여 모든 알람을 지우거나 장치를 재부팅하여 대기중인 의도가 전달되지 않도록합니다. 이것이 당신의 불황을 해결하지 못한다면 나는 완전히 이해하지 못합니다. HOUR_OF_DAY는 7 또는 19입니다. – apelsoczi

+0

답변 해 주셔서 감사합니다. 나는 그날 이전 시간에 알람이 울리는 것을 막기 위해 사용자가 설정 한 시간이 이미 과거인지 확인해야한다고 생각합니다. – Jonny

관련 문제