Android WorkManager не запускает рабочий - PullRequest
0 голосов
/ 12 марта 2020

Я хочу загрузить определенные файлы с сервера при запуске приложения. Поэтому я попытался использовать Work Manager, который ставится в очередь из моего пользовательского класса Application. Но класс Worker не запускается, и состояние только ЗАВЕРШЕНО и не собираюсь Бежать . Ниже мой код:

Класс приложения:

@Override
public void onCreate() {
    Constraints constraints = new Constraints.Builder()
            .setRequiredNetworkType(NetworkType.CONNECTED)
            //.setRequiresStorageNotLow(true)
            //.setRequiresBatteryNotLow(true)
            .build();

    OneTimeWorkRequest request = new OneTimeWorkRequest
            .Builder(MyWorker.class)
            //.setConstraints(constraints)
            //.setInitialDelay(1,TimeUnit.SECONDS)
            .addTag("download")
            .build();

    WorkManager.getInstance(getApplicationContext()).getWorkInfoByIdLiveData(request.getId()).observeForever(new Observer<WorkInfo>() {
        @Override
        public void onChanged(WorkInfo workInfo) {
            if (workInfo == null) {
                Log.d("download", "workInfo == null");
            } else {
                Log.d("download", "workInfo != null: " + workInfo.getState().toString());//This is giving ENQUEUED once..thats it
            }
        }
    });
    WorkManager.getInstance(getApplicationContext()).enqueue(request);
}

Класс MyWorker

public class MyWorker extends Worker {

public MyWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
    super(context, workerParams);
}

@NonNull
@Override
public Result doWork() {
    //Some file to download 
}
}

build.gradle:

implementation "androidx.work:work-runtime:2.3.2"

То, что я пробовал:

Я попытался добавить интервал, а также удалить ограничения, но также, MyWorker не запускается.

Я видел много сообщений SOF, как указано ниже, но это не помогло мне:

Менеджер работника: не начинать работу в enqueue

Почему работники в менеджере работ все еще находятся в состоянии ENQUEUED?

Android WorkManager не запускает одного из двух запланированных работников

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