Получить рабочий статус 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 и показывает один хороший пример.