2013-04-24 20 views
2

我試圖建立一個報警應用程序。之前我有鬧鐘在工作,我可以設置不同的時間,鬧鐘會正常工作。然後,我將ChangeAlarmActivity的佈局更改爲TableLayout,現在它不起作用了?我沒有觸及代碼。這裏是我如何設置鬧鐘:爲什麼我的AlarmManager會立即發射?

Intent alarmIntent = new Intent(ChangeAlarmActivity.this, AlarmReceiver.class); 
PendingIntent pendingAlarmIntent = PendingIntent.getBroadcast(ChangeAlarmActivity.this, (int)alarm.getID(), 
     alarmIntent, 0); 

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
System.out.println("Alarm time: " + hour + ":" + min); 
Calendar alarmCal = Calendar.getInstance(); 
//alarmCal.setTimeInMillis(System.currentTimeMillis()); 
alarmCal.set(Calendar.HOUR_OF_DAY, hour); 
alarmCal.set(Calendar.MINUTE, min);   
//alarmCal.set(Calendar.SECOND, 0); 

alarmManager.set(AlarmManager.RTC_WAKEUP, 
     alarmCal.getTimeInMillis(), 
     pendingAlarmIntent); 

回答

15

可能是因爲你的時間和分鐘在過去。

讓我們說它是16:07小時當前時區(使用24小時時間),以及你hour執行該代碼爲3min27。 03:27過去了,因此警報立即發生。

撥打您的兩個set()電話後,看看時間是否早於現在,如果是這樣,add()有一天。

+1

我想如果(alarmCal.getTimeInMillis() 2013-04-24 20:10:44

+0

@JohnathanAu:這應該有效。 – CommonsWare 2013-04-24 20:11:02

+0

謝謝,現在就試試:) – 2013-04-24 20:12:25

相關問題