获取arch WorkManager的运行状态



我最近开始使用arch WorkManager进行后台处理。由于这是一个新引入的库,所以几乎没有任何关于它的教程。我有一项服务,可以检查firebase中的任何数据更改。如果服务被破坏,WorkManager就会采取行动。在我的服务的onDestroy方法中,我有-

PeriodicWorkRequest.Builder photoWorkBuilder =
new PeriodicWorkRequest.Builder(MyWorker.class, 10000,
TimeUnit.MILLISECONDS);
PeriodicWorkRequest myWork = photoWorkBuilder.build();
WorkManager.getInstance().enqueue(myWork);

如果我以前的状态为null或未运行,我只想将工作排入队列。我不想把排队的几件作品弄得乱七八糟。每当我的服务被破坏时,我上面的代码都会创建工作队列,所以它会不断地排队。是的,我确实读过关于这方面的教程,但它们都是为Kotlin编写的,或者都有lambda表达式。PS-仅限Java方法,没有Kotlin或lambda表达式。

我的建议是完全取消服务,并使用带有定期请求的WorkManager来轮询更改。此外,如果您使用的是Firebase数据库,那么您应该能够在不需要Service的情况下侦听数据库更改。我以WorkManager为例。本文非常好地描述了WorkManager背后的历史,并展示了一个很好的例子。

最新更新