Java 获取arch WorkManager运行状态
我最近开始使用arch WorkManager进行后台处理。因为它是一个新引入的库,所以几乎没有任何关于它的教程。我被困在这里了。我有一个服务可以检查firebase中的任何数据更改。若服务被破坏,WorkManager将采取行动。 在我的服务的onDestroy方法中,我-Java 获取arch WorkManager运行状态,java,android,android-jobscheduler,android-workmanager,Java,Android,Android Jobscheduler,Android Workmanager,我最近开始使用arch WorkManager进行后台处理。因为它是一个新引入的库,所以几乎没有任何关于它的教程。我被困在这里了。我有一个服务可以检查firebase中的任何数据更改。若服务被破坏,WorkManager将采取行动。 在我的服务的onDestroy方法中,我- PeriodicWorkRequest.Builder photoWorkBuilder = new PeriodicWorkRequest.Builder(MyWorker
PeriodicWorkRequest.Builder photoWorkBuilder =
new PeriodicWorkRequest.Builder(MyWorker.class, 10000,
TimeUnit.MILLISECONDS);
PeriodicWorkRequest myWork = photoWorkBuilder.build();
WorkManager.getInstance().enqueue(myWork);
仅当我以前的状态为空或未运行时,我才想将工作排队。我不想把几件作品排成一行。我上面的代码在每次我的服务被破坏时都会创建工作队列,所以它会一直排队。是的,我确实读过这方面的教程,但都是为Kotlin编写的,或者都有lambda表达式。
PS-仅限Java方法,没有Kotlin或lambda表达式。我的建议是完全摆脱服务,使用WorkManager定期请求轮询更改。此外,如果您使用的是Firebase数据库,那么您应该能够在不需要服务的情况下侦听数据库更改。我跟随工作经理。本文很好地描述了WorkManager背后的历史,并展示了一个很好的示例。如何听取数据库更改?若应用程序闲置或手机进入深度睡眠,那个么对数据库更改并没有反应。据我所知,数据同步由firebase数据库库处理。你不需要明确地这样做。