Я использую workManager для планирования фоновой периодической работы, работа запланирована, и я вижу из журнала, что работа выполняется периодически.Тем не менее, когда я запрашиваю статус работы, чтобы увидеть, поставлена ли она в очередь, она всегда не возвращает ничего.Любая мысль?
Log.e(logTag, "Scheduling a new User Sync Request");
PeriodicWorkRequest userSyncRequest = new PeriodicWorkRequest
.Builder(userPeriodicSync.class, 900, TimeUnit.SECONDS)
.setConstraints(constraints)
.addTag(context.getString(R.string.user_sync_request_job_tag))
.build();
workManager.enqueue(userSyncRequest);
Log.i(logTag, "can i find the scheduled job now???");
WorkManagerHelperFunctions.isWorkScheduled(context.getString(R.string.user_sync_request_job_tag));
вот функция, которую я получил онлайн, чтобы проверить статус работы
public static boolean isWorkScheduled(String tag) {
Log.e(logTag, "WorkManagerHelperFunctions.isWorkScheduled is called to check tag " + tag);
WorkManager instance = WorkManager.getInstance();
if (instance == null) {
Log.e(logTag, "workmageer instance is null, returning false");
return false;
}
LiveData<List<WorkStatus>> statuses = instance.getStatusesByTag(tag);
if (statuses.getValue() == null) {
Log.e(logTag, "status value for tag " + tag + " is null , returning false");
return false;
}
boolean running = false;
for (WorkStatus workStatus : statuses.getValue()) {
Log.d(logTag, "work id: " + workStatus.getId() + " with tag " + workStatus.getTags() + " is in state " + workStatus.getState());
running = workStatus.getState() == State.RUNNING | workStatus.getState() == State.ENQUEUED;
}
return running;
}
Вот журнал:
09-19 23:46: 50.127 Контроллер 17331-17331: планирование нового запроса синхронизации пользователя
09-19 23: 46: 50.128 Контроллер 17331-17331: могу ли я найти запланированное задание сейчас ???
09-19 23: 46: 50.128 17331-17331 Periodic.WorkManagerHelperFunctions: WorkManagerHelperFunctions.isWorkScheduled вызывается для проверки тега userSyncRequestTag
09-19 23: 46: 50.128 17331-17331 тег WorkGanagerHelper возвращает функцию WorkManagerHelper для значения тегаложь