首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定期在Android上调度后台任务

定期在Android上调度后台任务
EN

Stack Overflow用户
提问于 2022-02-27 10:23:07
回答 1查看 1.2K关注 0票数 2

我正在开发一个应用程序,我必须从多个传感器读取数据,并每15分钟将其发送到远程服务器。这必须在应用程序关闭/关闭时完成,我还必须确保它总是执行。我也想确保它发生(几乎)精确每15分钟(+-1分钟的差异是上限)。

至此,我找到了3个选项:使用Workmanager、Alarmmanager或使用前台服务。遵循文档,工作管理器似乎是完成后台任务的道路,然而,在完成了一些阅读之后,Alarmmanager似乎是一个更安全的选择(Workmanager有时会遇到打瞌睡模式的问题,而且时间不精确,因为它使用的是弹性周期。。而且前台服务也不允许用于这类任务(它不是很长时间运行,它只是一个周期性的任务),并且在较新的安卓版本中受到限制。你认为使用Alarmmanger来完成这项任务是个好主意,还是我应该使用其他的东西?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-02-27 10:52:54

TODO后台调度。你可以用这个方法来做你的事情。

KOTLIN;

代码语言:javascript
复制
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;

代码语言:javascript
复制
  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);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71283937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档