我有一个应用程序,允许用户安排闹钟在特定时间响起,并按照他们选择的间隔重复。我正在使用JSON来保存警报详细信息,使用SharedPreferences作为存储。
我正在使用AlarmManager来安排应该通知我的应用程序应该发出警报通知用户的时间。我目前正在使用AlarmManager的setRepeating()方法,提供用户提供的时间间隔。这很好用,理论上应用程序永远不需要更新存储下一个闹钟时间的JSon,因为AlarmManager将使用间隔重新安排下一个闹钟时间。
但是,我的想法是,当设备重新启动时,我将需要为AlarmManager提供最新的闹钟时间,以避免AlarmManager认为已经错过了警报,因为这不一定是情况下。
那么,最好的方法是什么?
我确信上述任何一项都有效,但我无法确定哪种方式最好。
答案 0 :(得分:1)
这似乎主要是一个选择问题。您注意到的问题与Linux笔记本电脑中出现的一般问题相似,并由anachrond解决。在我看来,我只是更新时间并在每次收到事件时将其存储在SharedPreferences中。试图在系统关闭时进行监听可能并不完全可靠(当您的用户 - 可能是醉酒的大学生 - 放弃他们的设备并且电池飞出来时会发生什么?)。相反,我认为在这种情况下最好的办法是 - 每次警报触发时 - 重新计算发送下一个警告的时间,将其存储在某个地方,并在适当的启动时间表上进行。