【发布时间】:2012-06-13 07:14:08
【问题描述】:
我有一个应用程序,它允许用户安排闹钟在特定时间响起,并在他们选择的时间间隔内重复。我正在使用 JSON 来保存警报详细信息,使用 SharedPreferences 作为存储。
我正在使用 AlarmManager 来安排何时应通知我的应用程序应发出警报以通知用户。我目前正在使用 AlarmManager 的 setRepeating() 方法,提供用户提供的间隔。这很好用,理论上应用程序永远不需要更新存储下一个闹钟时间的 JSon,因为 AlarmManager 只会使用间隔重新安排下一个闹钟时间。
但是,我的想法是,当设备重新启动时,我将需要向 AlarmManager 提供最新的警报时间,以避免 AlarmManager 认为警报已经错过,因为这不一定是案例。
那么,最好的方法是什么?
- 当闹钟响起时更新 JSon 下一个闹钟时间,即使这可能不是必需的(只要没有重新启动,setRepeating() 就会处理这个问题)?
- 然后注册并收听关机广播并更新 JSon(这引发了一些问题 - 考虑到手机正在关机,应用程序将在多长时间内计算警报详细信息并将其写入存储)?
- 不要更新 JSon,而是将逻辑添加到由 AlarmManager唤醒 的对象,以决定刚刚广播的警报是否有效,是否应该提醒用户?
我确信上述任何方法都可以,但我无法确定哪种方法最好。
【问题讨论】:
标签: android logic alarmmanager