Android:AlarmManager不工作长间隔值

时间:2012-05-15 09:28:39

标签: android alarmmanager

我正在使用AlarmManager进行窗口小部件更新事务。我有不同的间隔值,如5,10,15,30分钟等。

如何致电AlarmManager

alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyService.class);
pi = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);        

// Interval value, default 600 (600*1000 -> 10 min)
Long repeat = Long.parseLong(prefs.getString("update_preference", "600"));

// Set the manager
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 1000*repeat, pi);

所以如果用户选择5或10分钟,那没关系。但是,如果不是,我的意思是,用户选择更大的值,例如15分钟,30分钟,{60分钟MyService setRepetaing不能正常工作{{1}}。

有什么区别或错误?

编辑:它立即生效<30分钟,但现在使用唯一的请求代码工作时间超过30分钟。

2 个答案:

答案 0 :(得分:2)

我认为你必须在PendingIntent

中使用唯一的请求代码

Mulitple Instances of Pending Intent

答案 1 :(得分:2)

pi = PendingIntent.getService(context, 12345, i, PendingIntent.FLAG_UPDATE_CURRENT);   

这可能有效,“0”不是唯一身份证的最佳选择。