android - Android - 当应用程序处于锁定或睡眠状态时,计时器不会定期运行
问题描述
在我的android项目中,我有定期任务每60秒更新一次API,因为我正在使用TimerTask,当应用程序处于锁定状态或睡眠状态时,当应用程序处于后台或前台时,一切正常,或睡眠状态计时器毫秒每分钟滞后一次,例如第一个 api 时间是 10.00。00秒 api 时间为 10.01。05每计数毫秒都在增加
我试过工作管理器,但我的周期间隔是 60 秒,我需要一个答案,它每 60 秒运行一次周期作业,没有任何时间延迟
我参考了这段代码https://github.com/codeexpedia/android_sync_adapter它工作正常我在 SyncAdapter 中还有一个问题,一些设备同步适配器跳过例如:-如果我设置 60 秒间隔,它每 5 分钟跳过 1 分钟你能帮我
如果应用程序处于打瞌睡模式,则适用于 7 和 8 api 版本的任何其他解决方案
解决方案
由于您的要求是在应用程序和服务器之间同步数据,您可以使用Android 的原生功能,SyncAdapter
这将根据时间间隔以任何一种方式同步数据。您可以在docs中阅读有关它的信息。我会建议这种方法而不是 TimerTask。
推荐阅读
- julia - 在 Julia 中使用 `\` 而不是 `/`
- r - 如何使用 read.table 从 .rda 读取数据
- neo4j - 用于建模特定领域的图形数据库
- google-cloud-platform - “process.env.DATABASE_URL”未填充在 Google Cloud Run 上部署的应用程序中
- laravel - 403 用户在 laravel 用户控制器 laratrust 中没有任何必要的访问权限
- azure - 如何手动创建部署到 Azure 静态 Web 应用程序(预览版)所需的 Azure API 令牌?
- java - 无法从另一个活动传递值(仅传递空值)
- python-3.x - 计算句子中的字母(Python)
- java - 如何将 setContentView(View view) 方法移动到片段
- html - 我想要一个高度相同的 img 旁边的 div,同时使用 100% 的页面宽度