首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用工作经理定期安排工作。

使用工作经理定期安排工作。
EN

Stack Overflow用户
提问于 2021-05-07 11:27:57
回答 1查看 330关注 0票数 0

在我的android应用程序中,我需要每隔5天执行一项任务。任务是调用API并从服务器获取数据,即使应用程序没有运行/终止。

我已核对了以下可能的选择:

  1. Alarm manager + Broadcast receiver + Intentservice --在这种方法中,问题在于安卓框架对intentService施加的限制。此外,如果设备被重新启动,注册的警报将被擦除。

  1. WorkManager --对于我的任务来说,这似乎是一种更好的方法,可以保证在最新的安卓版本上执行,但仍然不清楚是使用PeriodicWorkRequest还是OneTimeWorkRequest并继续重新安排它。

请注意,在确切的时钟时间内执行此任务并不重要,但每隔5天执行一次就可以了。

EN

回答 1

Stack Overflow用户

发布于 2021-05-07 12:48:12

第一个选择是更好的方法。

警报管理器+广播接收器+ Servcie:在这里,您需要通过通知使服务成为前台服务。即使应用程序被终止或没有运行,您的服务也将始终运行。对于重新启动,您可以有一个重新启动接收器,并再次设置警报。使用这种方法,服务可以运行,其中需要大量时间,比如下载多个文件,因为它可以运行到作业完全完成为止。

WorkManager :对于WorkManager,主要的问题是,在所有移动制造商中,这种行为并不一致。像三星这样的手机制造商对电池优化有限制,当应用程序没有运行或终止时,WorkManager就无法工作。在需要大量时间(例如下载多个文件)的情况下,WorkManager是不好的,因为它会在10分钟后终止(如果我没有错)

Work Manager not working when app is killed by the user. Why?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67434137

复制
相关文章

相似问题

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