我正在设计一个包含时间表的应用程序,当用户向其中添加一个事件时,他可以定义该事件是否重复“每周”,“每2周”等,如果每周重复一次就可以了,但是可以说“每月一次”,我必须计算自用户添加该事件并在一周后删除该事件,然后在3周内重新添加该事件的时间。
根据我的研究,我可以使用AlarmManager,Handler或Timer。必须在应用未运行时更新它,但不必在手机处于睡眠状态时更新它,我觉得对于这个简单的任务,AlarmManager会显得过大,但是使用计时器或处理程序来计算自用户向(time passed since the user added the event) + (time the phone was asleep)
之类的东西添加了一个我需要的事件,但我不确定该怎么做或是否有可能
AlarmManager,Timer,Handler或其他?
最佳答案
对于您的情况,您绝对应该使用AlarmManager
。
与Handler
一起运行Timer
只能在短时间内使用。这样您可以确保该应用程序仍在运行。
另一方面,应使用AlarmManager
在应用程序生存期内进行操作,在应用程序中就是这种情况。
请参阅从training docs复制的以下注释
注意:为了确保在应用程序生存期内发生计时操作,请考虑将Handler类与Timer和Thread结合使用。这种方法使Android可以更好地控制系统资源。