2012-11-12 74 views
1

我有鬧鐘,應該每天在12AM運行(這不是重複鬧鐘,我每次都需要設置它,在某些情況下我不需要它運行)AlarmManager:除非我手動更改日期,否則不會觸發鬧鐘

Intent myIntent = new Intent(AlarmService.this, AlarmService.class); 
pendingIntent = PendingIntent.getService(this, 0, myIntent, 0); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.HOUR_OF_DAY, 12); 
cal.set(Calendar.AM_PM, Calendar.AM); 
cal.set(Calendar.MINUTE, 0); 
cal.set(Calendar.SECOND, 0); 
cal.set(Calendar.MILLISECOND, 0); 
cal.add(Calendar.DAY_OF_MONTH, 1); 
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent); 

奇怪的是,如果我手動將日期/時間更改爲第二天的12Am警報被解僱。但是,如果我將時間設置爲今天的11點59分,並且等到12點,則什麼都不會發生,如果時間/日期自動設置,那麼它也不會在上午12點開火。任何想法爲什麼是hapennning或我如何解決它?謝謝

回答

0

你的代碼看看this有一些問題,我在使用它之前是完美的,它會改進你的代碼。

+0

在我的情況下,我正在重新啓動服務類本身內的警報(上面的代碼)。這是否會造成不當行爲? @Omar喬哈里 – user1433460

+1

@ user1433460你可以使用計時器 – Omarj

+0

看看這種情況下它是相對於你的問題? http://stackoverflow.com/questions/12807577/is-it-possible-to-have-a-alarmmanager-inside-a-service-class – Omarj

相關問題