periodicworkrequest不定期工作

raogr8fs  于 2021-09-29  发布在  Java
关注(0)|答案(0)|浏览(315)

我在这里根据android的workmanager文档构建了一个简单的periodicworkrequest。我基本上需要一个每15分钟运行一次的工人。然而,我的工人只跑了一次,再也不会跑了。
以下是我如何启动工作请求:

PeriodicWorkRequest myWorkRequest =
            new PeriodicWorkRequest.Builder(
                    MyWorker.class,
                    PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS,
                    TimeUnit.MILLISECONDS
            ).build();

WorkManager.getInstance(this).enqueue(myWorkRequest);

我的工人类只是一个系统日志,只是为了测试它。以下是工人的相关部分:

@Override
public Result doWork() {
    Log.d("Worker runs");
    return Result.success();
}

我希望这个工人每15分钟运行一次。但是,它在应用程序启动时只运行一次,以后不会再运行。
我搜索了很多,注意到了一些关于它的事情,但仍然没有运气:
时间间隔很重要,必须至少为15分钟,此处也有回答。然而,我的时间间隔已经是常数了 PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS 所以它应该和它一起工作。我甚至试了16分钟,但也没用。
另一个建议是使用唯一id,以防它们如本文所述相互取消。我添加了一个标记,并按如下方式启动了worker:

WorkManager.getInstance(this).enqueueUniquePeriodicWork(
     UNIQUE_ID, ExistingPeriodicWorkPolicy.REPLACE, myWorkRequest);

然而,这并没有改变,它仍然只运行一次。
我读到workmanager有一些bug,在某些手机上可能无法正常工作。但我试过使用不同的设备和模拟器,但在任何一个设备和模拟器中都不起作用。
我的workmanager版本 "androidx.work:work-runtime:2.5.0" 目前我正在安卓11模拟器上进行测试。任何帮助都将不胜感激,谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题