我正在尝试执行每15分钟运行一次的后台同步。以下是我进行同步的WorkManager初始化:
PeriodicWorkRequest syncRequest = new PeriodicWorkRequest.Builder(MyWorkerClass.class, 15, TimeUnit.MINUTES).addTag("sync").build();
WorkManager.getInstance().enqueueUniquePeriodicWork("sync", ExistingPeriodicWorkPolicy.REPLACE, syncRequest);
但是,当我的设备被锁定时,由于某种原因,此同步会发生两次,直到设备被解锁。一旦设备解锁并启动应用程序,此同步就会触发两次,但是从下一次同步起就可以正常工作。
正在使用的设备是在牛轧糖上运行的TC25 Zebra
我的app.gradle文件中使用的依赖项:
implementation "android.arch.work:work-runtime:1.0.1"
谁能建议避免重复通话的最佳方法。
答案 0 :(得分:0)
您需要正确处理onStopped
回调并合作停止工作。否则,您肯定会看到Worker
的多个实例同时运行。