2011-10-11 91 views
0

我嘗試使用AlarmManager來設置從現在開始幾秒後發生的報警。這裏是我的代碼:AlarmManager不能及時啓動報警

AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 

Intent intent = new Intent(ALARM_ACTION); 
PendingIntent alarmIntent = PendingIntent.getBroadcast(getBaseContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
Calendar rightNow = Calendar.getInstance();   
rightNow.add(Calendar.SECOND, NumOfSecond); 
am.set(AlarmManager.RTC, rightNow.getTimeInMillis(), alarmIntent); 

例如,如果RightNow公司是上午8:00,我希望14400秒後,我的報警情況發生,即12:00 PM,所以代碼運行時NumOfSecond將被設置爲14400.但警報不會總是在中午12點發生,有時會延遲1或2分鐘,甚至5分鐘!有人知道這裏發生了什麼嗎?

回答

2

改爲嘗試AlarmManager.RTC_WAKEUP

0

因爲當您將秒添加到您的日曆時間時,它也會隨時間變化,因爲您將在不同的時間編譯和運行它。嘗試在想要運行鬧鐘的特定時間使用set方法。