android报警管理器长间隔

时间:2010-11-22 17:20:13

标签: android

我有一个从警报管理器对象获得通知的服务的工作示例,间隔根据用户的偏好而变化,当间隔为5-10-20-30分钟但我安排警报时,这可以正常工作一小时我的服务从未通知,是否有任何已知的错误?警报不应该通知我的服务吗?

2 个答案:

答案 0 :(得分:2)

检查AlarmManager documentation,在这种情况下最好使用INTERVAL_HOUR常量。

答案 1 :(得分:0)

我唯一的建议是确保你代表1小时为3,600,000毫秒。

我在我的方法中使用以下方法,从当天00:00开始每小时15分钟设置闹钟,而不是在创建闹钟时设置闹钟。

// Set (or get) long time
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
long START_TIME = calendar.getTimeInMillis();

// Variables
int LONG_INTERVAL = 15; // in minutes

// Set the repeating alarm
aManager.setRepeating(AlarmManager.RTC_WAKEUP, START_TIME, LONG_INTERVAL * 60000, sender);

我只是将HOUR_OF_DAY和MINUTE设置为大约55分钟“之前”,而不是等待整整一个小时进行测试,以便它能够在下一个预期的时间间隔内运行。我测试时一切都很成功。