2012-07-06 59 views
1

好吧,夥計們,我有這樣的重複的任務要做,所以我安排cupple報警:我PendingIntents和系統時間更改

private static void scheduleAlarm(Context context, AlarmManager alarmManager, String action, long interval) { 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, new Intent(action), PendingIntent.FLAG_UPDATE_CURRENT); 
     alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + interval, pendingIntent); 
} 

但是,當我更改系統時間,我所有的報警被打破,即它們最終發生火災,但是當系統時間變得與警報時間相同時。

我該如何處理這個問題?

回答

1

當用戶改變系統時間,事件與此意圖動作廣播:android.intent.action.TIME_SET

您可以偵聽此意向,並重新安排你的報警。

+0

我可以獲得它與現在的時間差嗎? – 2012-07-06 12:14:21

+0

不是我所知道的。您需要事先將時間保存在文件或SharedPreferences中,並在收到廣播Intent後將其與當前時鐘進行比較。 – 2012-07-06 13:17:50