gpt4 book ai didi

android - 在 Android 中安排保证在接近预定时间运行的任务的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 15:20:00 25 4
gpt4 key购买 nike

我一直在使用带有伪代码的 Timer 和 TimerTask:-

 samplingTask = new TimerTask() {

public void run() {
collectSample();
}

};

timer.schedule(samplingTask, 60*1000, 60*1000); //1 min

此应用程序是一个长时间运行的应用程序(例如,假设 15 分钟没有唤醒锁,并且屏幕关闭)。安排此任务后,我锁定屏幕并且手机处于运动状态(为加速度计激活了传感器管理器)。因此,理想情况下,此任务应每分钟运行一次。但是,在日志中,我看到预定的计时器仅在第 5 分钟、第 9 分钟和第 12 分钟运行。

FINER: (13,Timer-0,Workout)In Timertask, nth minute=5
FINER: (13,Timer-0,Workout)In Timertask, nth minute=9
FINER: (13,Timer-0,Workout)In Timertask, nth minute=12

我的要求是时间关键采样,可接受的延迟范围为几秒(1-5 秒)。看来如果设备处于 sleep 模式,定时器不会将其唤醒并运行计划任务。还有其他选择吗?文档说可以使用 AlarmManager 和 Handler。我认为 AlarmManager 应该理想地用于根据某些系统警报执行单次任务。是否有我遗漏的东西或一些替代方法来实现此功能。

最佳答案

您可以使用 AlarmManager - 它有机会削弱设备并重复运行某些任务。

我不太清楚,但是假设,当用户关闭屏幕时,所有任务都暂停并且无法执行任何代码,同时设备处于休眠状态。

关于android - 在 Android 中安排保证在接近预定时间运行的任务的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8830942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com