android - Android 日常后台工作推荐
问题描述
我只想知道您安排日常工作的任何经验,这些工作执行诸如使用 POST API 请求上传数据之类的任务,然后用空间更新本地数据库。我的目标是每天 23:59 左右执行此类任务。
我尝试过一次性独特的工作,然后在完成任务后将其重新安排在同一个工作人员中,这在某些设备上运行良好,但在其他设备上却失败了。
我还尝试了定期独特的工作,但这非常不稳定,它只有在设备插入电源时才能正常工作,否则会多次延迟工作。
你建议我用什么来做这种工作最准确的目标是在 23:59 和 06:00 之间完成工作,以避免干扰白天的用户体验。
解决方案
警报管理器 + 广播接收器 + Servcie:这里您需要将服务设置为带有通知的前台服务。即使应用程序终止或未运行,您的服务也将始终运行。对于重新启动,您可以拥有一个重新启动接收器并再次设置警报。使用这种方法,服务可以在需要大量时间的情况下运行,比如下载多个文件,因为它可以运行直到作业完全完成。
WorkManager: WorkManager 的主要问题是所有移动制造商的行为不一致。三星等移动制造商对电池优化有限制,当应用程序未运行或终止时,WorkManager 将无法工作。WorkManager 在需要大量时间的情况下不好,比如下载多个文件,因为它会在几分钟后终止(如果没有错,10 分钟)
推荐阅读
- javascript - 如何解决 TypeError: angular.element(...).scope(...).selectFileForUpload is not a function
- java - ORA-02049: 超时: 分布式事务在多线程环境中等待锁定
- windows - 批处理程序在第五个斜线后删除 txt 中的所有内容
- python - pyuno 在 libreoffice 中缺少符号并且无法使用 python2
- html - WebAPP Quiz html - 从谷歌电子表格中读取数据 - 选择工作表
- c++ - 关联容器的下界复杂度:成员函数与非成员函数
- python - 在蛇形教程环境中导入 matplotlib 错误
- r - strwidth 中的错误(图例,单位 =“用户”,cex = cex,字体 = text.font):尚未调用 plot.new
- .net-core - 本地主机上的 .NET Core WsFederation 身份验证登录循环
- javascript - 出生日期字段的三个文本框?