Есть ли способ проверить, работает ли WorkManager правильно? - PullRequest
0 голосов
/ 14 января 2019

Мы можем проверить, работают ли Activities и Fragments, открыв и просмотрев их. Но поскольку WorkManager использует неточное время и больше похож на фоновый сервис, этот подход не может быть использован здесь. Как проверить, что WorkManager работает и выполняет то, что я намереваюсь сделать?

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Вы также можете использовать артефакт тестирования WorkManager. Вам не нужно проверять WorkManager. Вы должны проверить взаимодействие между вашими Worker s.

0 голосов
/ 14 января 2019

Вы можете запустить класс workManager, используя следующий метод, и также можете сохранить его экземпляр.

public static OneTimeWorkRequest getInstance() {
    if (workRequest == null) {
        workRequest = new OneTimeWorkRequest.Builder(YourClass.class)
                .addTag("your_tag")
                .build();
    }
    return workRequest;
}

Вы можете наблюдать за работником, используя getStatusById и getStatusesByTag

WorkManager.getInstance().getStatusById(getInstance().getId()).observe(this, new Observer<WorkStatus>() {
            @Override
            public void onChanged(@Nullable WorkStatus workStatus) {
                if (workStatus != null) {
                    Log.e("mylog", "onOptionsItemSelected: " + workStatus.getId() + " -> " + workStatus.getState());
                }
            }
        });

        WorkManager.getInstance().getStatusesByTag("your_tag").observe(this, new Observer<List<WorkStatus>>() {
            @Override
            public void onChanged(@Nullable List<WorkStatus> workStatuses) {
                if (workStatuses != null && !workStatuses.isEmpty()) {
                    for (WorkStatus status : workStatuses) {
                        Log.d("mylog", "onOptionsItemSelected: "+ status.getId() + " -> " + status.getState());
                     }
                } 
            }
        });

https://developer.android.com/topic/libraries/architecture/workmanager/basics

...