AlarmManager vs Handler/Timer 长计时器

AlarmManager vs Handler/Timer with long timer

我正在设计一个包含时间表的应用程序,当用户向其中添加一个事件时,他可以定义它是否重复 "every week"、"every 2 weeks" 等,如果每周都可以但是如果是,假设 "once a month",我必须计算自用户添加该事件以来的时间,并在一周后删除该事件,然后在 3 周后将其添加回来。

根据我的研究,我可以使用 AlarmManager、Handler 或 Timer。它必须在应用程序不在 运行 时更新,但在 phone 处于睡眠状态时不需要更新,我觉得 AlarmManager 对于这个简单的任务来说太过分了,但是使用 Timer 或一个处理程序,用于计算自用户添加事件以来的时间,我需要将其添加到 (time passed since the user added the event) + (time the phone was asleep) 之类的内容中,我不确定该怎么做,或者是否有可能

AlarmManager、Timer、Handler 还是其他?

您应该使用 AlarmManager(这是 AlarmManager 的全部目的)

如果您的应用未 运行ning,您的计时器将不会 运行ning 那么如果用户不打开该应用,您如何预计下周它会 运行?

对于您的情况,您绝对应该使用 AlarmManager

运行 a HandlerTimer 只能在短时间内使用。这样您就可以确定该应用程序仍然是 运行.

另一方面,

AlarmManager 应该用于在您的应用程序生命周期之外执行操作,您的应用就是这种情况。

参考从training docs

复制的以下注释

Note: For timing operations that are guaranteed to occur during the lifetime of your application, instead consider using the Handler class in conjunction with Timer and Thread. This approach gives Android better control over system resources.