0

在我的 Android 应用程序中,无论手机是否处于活动状态,我都需要每分钟执行一些代码。

(对于那些好奇的人,这个应用程序是为一个个人项目设计的,一个“会说话”的时钟,它需要检查每分钟是否有相应的声音文件可以播放。这不是我打算向世界发布的东西,所以电池没有考虑因素。)

我目前的方法是用来Timer.scheduleAtFixedRate()安排任务。

每当我查看应用程序并偶尔与其交互以防止屏幕空白时,这似乎都有效,但如果手机关闭屏幕以节省电量,我的通话似乎是偶尔发生的。

我尝试将间隔设置为每 30 秒一次,但即便如此,我似乎错过了几分钟。在 Android 上使用 Timer 是否有具体注意事项?有没有更好的方法来实现我所需要的?

4

2 回答 2

2

问题:您是否 100% 绝对确定您需要每分钟都这样做?在我看来,你会像疯了一样占用电池,并且会让不少用户不满意。

但是如果你回答yes这个问题:在你的活动暂停后,系统不能保证它上面的任何东西(包括你的任务)都会继续运行;这样,一旦系统需要几兆字节来执行任何操作,它就会终止您的活动并停止您的计时器。

您应该在服务中实现计时器/任务。服务被系统杀死的可能性要小得多,您可能会问系统是否需要杀死它以尽快重新创建它。

于 2012-08-15T14:54:32.760 回答
1

您是否尝试过使用AlarmManager,即使手机处于待机模式或关机状态,这也可以让您每隔 X 时间执行一项任务

是它的文档

如果你想要一个使用 AlarmManager 的好例子,这里是……如果手机关机,这个例子不起作用,但如果你愿意,你可以很容易地启用它

于 2012-08-15T14:53:21.210 回答