在我的 Android 应用程序中,无论手机是否处于 Activity 状态,我都需要每分钟执行一段代码。
(对于那些好奇的人来说,该应用程序适用于个人项目,一个“会说话的”时钟,需要每分钟检查一次是否有相应的声音文件要播放。这不是我打算向世界发布的东西,因此不考虑电池问题。)
我当前的方法是使用 Timer.scheduleAtFixedRate()
来安排任务。
每当我查看该应用程序并偶尔与其交互以防止屏幕空白时,这似乎都有效,但如果手机关闭屏幕以节省电量,我的通话似乎会偶尔发生。
我尝试将间隔设置为每 30 秒,但即便如此,我似乎还是错过了一些分钟。在 Android 上使用计时器有什么具体注意事项吗?有没有更好的方法来实现我的需求?
最佳答案
问题:您是否 100% 绝对确定您需要每分钟都执行此操作?在我看来,你会疯狂地消耗电池,并且会引起相当多的不满意的用户。
但是如果您对这个问题的回答是
:
暂停您的 Activity 后,系统无法保证其上的任何内容(包括您的任务)将继续运行;这样,一旦系统需要几兆字节来执行任何操作,它就会终止您的 Activity 并停止计时器。
您应该在服务中实现计时器/任务。服务被系统杀死的可能性要小得多,您可能会问系统是否需要杀死它并尽快重新创建它。
关于java - 在 Android 中使用 Timer.scheduleAtFixedRate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971544/