我正在开发一个应用程序,我必须从多个传感器读取数据,并每15分钟将其发送到远程服务器。这必须在应用程序关闭/关闭时完成,我还必须确保它总是执行。我也想确保它发生(几乎)精确每15分钟(+-1分钟的差异是上限)。
至此,我找到了3个选项:使用Workmanager、Alarmmanager或使用前台服务。遵循文档,工作管理器似乎是完成后台任务的道路,然而,在完成了一些阅读之后,Alarmmanager似乎是一个更安全的选择(Workmanager有时会遇到打瞌睡模式的问题,而且时间不精确,因为它使用的是弹性周期。。而且前台服务也不允许用于这类任务(它不是很长时间运行,它只是一个周期性的任务),并且在较新的安卓版本中受到限制。你认为使用Alarmmanger来完成这项任务是个好主意,还是我应该使用其他的东西?谢谢!
发布于 2022-02-27 10:52:54
TODO后台调度。你可以用这个方法来做你的事情。
KOTLIN;
val service = Executors.newSingleThreadScheduledExecutor()
val handler = Handler(Looper.getMainLooper())
service.scheduleAtFixedRate({
handler.run {
// Do your stuff here, It gets loop every 15 Minutes
}
}, 0, 15, TimeUnit.MINUTES);JAVA;
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
Handler handler = new Handler(Looper.getMainLooper());
service.scheduleAtFixedRate(() -> {
handler.post(() -> {
// Do your stuff here, It gets loop every 15 Minutes
});
}, 0, 15, TimeUnit.MINUTES);https://stackoverflow.com/questions/71283937
复制相似问题