Получить рабочий статус Arch WorkManager

Недавно я начал использовать Arch WorkManager для фоновой обработки. Поскольку это новая библиотека, вряд ли есть какие-либо учебники об этом. Я застрял здесь в какой-то момент. У меня есть служба, которая проверяет любые изменения данных в базе данных. Если сервис уничтожен, WorkManager вступает в действие. В методе onDestroy моей службы у меня есть

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

        WorkManager.getInstance().enqueue(myWork);

Я хочу поставить в очередь ТОЛЬКО ЕСЛИ, мой предыдущий статус нулевой или не запущен. Я не хочу загромождать несколько работ в очереди. Мой приведенный выше код создает рабочую очередь каждый раз, когда мой сервис уничтожается, поэтому он будет просто в очереди вверх и вверх. Да, я читал об этих уроках, но все они были для Котлина или имели лямбда-выражение. PS- только метод Java, без выражения Kotlin или лямбда.

1 ответ

Мое предложение состоит в том, чтобы полностью избавиться от Сервиса и использовать WorkManager с периодическим запросом для запроса изменений. Кроме того, если вы используете базу данных Firebase, вы сможете прослушивать изменения базы данных без необходимости в обслуживании. Я следовал этому примеру для WorkManager. Эта статья очень хорошо описывает историю работы WorkManager и показывает один хороший пример.