Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取arch WorkManager运行状态_Java_Android_Android Jobscheduler_Android Workmanager - Fatal编程技术网

Java 获取arch WorkManager运行状态

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

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

        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数据库库处理。你不需要明确地这样做。