gpt4 book ai didi

java - 当设备锁定时,WorkManager 多次调用 doWork() 方法

转载 作者:行者123 更新时间:2023-12-01 23:03:27 25 4
gpt4 key购买 nike

我正在尝试执行每 15 分钟运行一次的后台同步。以下是同步发生时的 WorkManager 初始化:

PeriodicWorkRequest syncRequest = new PeriodicWorkRequest.Builder(MyWorkerClass.class, 15, TimeUnit.MINUTES).addTag("sync").build();
WorkManager.getInstance().enqueueUniquePeriodicWork("sync", ExistingPeriodicWorkPolicy.REPLACE, syncRequest);

但是当我的设备被锁定时,由于某些原因,这种同步会发生两次,直到设备解锁为止。一旦设备解锁并启动应用程序,此同步就会触发两次,但从下一次同步开始,它就可以正常工作。

我使用的设备是在 Nougat 上运行的 TC25 Zebra

我的 app.gradle 文件中使用的依赖项:

实现“android.arch.work:work-runtime:1.0.1”

任何人都可以建议避免重复调用的最佳方法吗?

最佳答案

您需要正确处理onStopped回调并配合停止您的工作。否则,您肯定会看到 Worker 的多个实例同时运行。

关于java - 当设备锁定时,WorkManager 多次调用 doWork() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58413052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com