Как получить результат от PeriodicWork о 100% прогрессе? - PullRequest
0 голосов
/ 18 июня 2020

Поскольку PeriodicWork не имеет состояния FINISHED, я решил, что я должен использовать setProgressAsync().build() для обозначения прогрессии ( как здесь ) и вместо этого проверять его состояние RUNNING, чтобы получить из него выходные данные когда это будет сделано.

Из отладки logcat я узнал, что Observer получает возможность «зондировать» мой Worker 4 раза, пока он работает при условии, что его состояние RUNNING (вся работа занимает всего несколько секунд). Если мое состояние более точное, другими словами progress==100, тогда оно никогда не доходит до него, я предполагаю, потому что это последняя строка, выполняемая перед оператором return, и действительна в течение голых миллисекунд, прежде чем работа вернется в состояние ENQUEUED. Получается стабильно при progress=0. В общем, я чувствую себя довольно сбитым с толку.

Также у моего worker есть объект Data, который нужно вернуть. Нужно ли мне возвращать его с Result.success(Data_Object) или с setProgressAsync().build() вместе с целым числом для прогресса?

adb jobscheduler runner не работает и забивает logcat до такой степени, что приходится перезапускать весь Android Студия. Установка Configuration.Builder для инициализации по требованию в целях отладки не работает.

Так что, вдобавок ко всему, мне нужно подождать 15 минут между тестами, поскольку это минимальный период времени и это приводит к разочарованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...