我有一个从警报管理器对象获得通知的服务的工作示例,间隔根据用户的偏好而变化,当间隔为5-10-20-30分钟但我安排警报时,这可以正常工作一小时我的服务从未通知,是否有任何已知的错误?警报不应该通知我的服务吗?
答案 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分钟“之前”,而不是等待整整一个小时进行测试,以便它能够在下一个预期的时间间隔内运行。我测试时一切都很成功。