Есть несколько способов:
— Самый простой способ, который, к сожалению, работает только для API 26+. В самой студии нажимаем на App Inspection — выбираем нужное устройство. Из плюсов: тут даже база отображается и можно посмотреть как внутри библиотеки хранятся воркеры. Информации там очень много, так что точно получится найти нужную.
Если переключимся на Background Task Inspector, то увидим все наши воркеры и в каком они сейчас состоянии. Можно кликнуть и посмотреть подробнее.
— adb shell dumpsys jobscheduler. Тут будет очень много различной информации. Прям действительно много. Но среди неё можно найти нужную.
— Также можно включить логирование. Для этого придется написать немного кода. Сначала определяем провайдер в манифесте:
Затем создаём класс Application или добавляем в существующий:
Изменения: https://github.com/Ladgertha/WorkManagers/commit/c346bfdc77e190d36a1b9062d6b7487701c35b98
Готово. Теперь у нас будут логи, которые можно увидеть по ключевым буквам WM:
— Самый странный способ, который у меня не сработал, но он описан в документации. Работает только для версии 2.4.0+: adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGOSTICS" -p "<app_package_name>". Соответственно, для моего приложения это было db shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGOSTICS" -p "ru.ladgertha.workmanagers". Тут должна была появиться информация за последние 24 часа, но у меня было только это:
Broadcasting: Intent { act=androidx.work.diagnostics.REQUEST_DIAGOSTICS flg=0x400000 pkg=ru.ladgertha.workmanagers }
Возможно, я что-то сделала не так. В любом случае, все равно остаётся много способов, которые работают.
Дубль статей в телеграмме — https://t.me/android_junior
Мои заметки в телеграмме — https://t.me/android_junior_notes