【发布时间】:2013-08-16 12:11:26
【问题描述】:
在我的应用程序中,我根据用户的自定义时间向用户显示通知。我在主类中触发alarmmanager,并将通知service 类称为pendingIntent 到alarmmanager。
如果用户没有更改设备时间意味着,alarmmanager 正在触发并且通知 service 工作正常,我正在收到通知。
考虑以下情况:
如果用户将设备时间设置为大于当前时间,则一切正常且通知正常。如果不是,用户设置的时间小于设备当前时间,那么alarmmanager 不会触发pendingIntent。所以我无法收到通知。
详细说明
设备当前时间:上午 10 点 通知时间:上午11点 设备时间更改为:上午 11 点 通知:是的
设备当前时间:上午 10 点 通知时间:上午9点 设备时间更改为:上午 9 点 通知:否
为什么会这样?
将设备时间更改为小于当前时间不会触发alarm manager.. 为什么?
如何克服这个问题?
【问题讨论】:
-
使用
adb shell dumpsys alarm查看系统时间更改后的闹钟状态。 -
AlarmManager 不处理时间变化。您应该听取时间变化的动作,然后重新安排闹钟。
标签: android service notifications alarmmanager android-pendingintent