2012-07-06 62 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