Почему WorkManager Worker запускается немедленно - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь использовать WorkManager для запуска процесса, когда устройство подключено к Power. Вот код:

Рабочий или слушатель:

import android.content.Context;

import androidx.annotation.NonNull;
import androidx.work.Worker;
import androidx.work.WorkerParameters;

public class PowerConnectionWorker extends Worker {
    public PowerConnectionWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
        super(context, workerParams);
    }

    @NonNull
    @Override
    public Result doWork() {
        Logger.d("PowerConnectionWorker", "Service started");
        return Result.success();
    }
}

Код диспетчера работ:

            Constraints constraints = new Constraints.Builder()
                .setRequiresCharging(true)
                .build();

        OneTimeWorkRequest compressionWork =
                new OneTimeWorkRequest.Builder(PowerConnectionWorker.class)
                        .setConstraints(constraints)
                        .build();
        WorkManager.getInstance(this).enqueue(compressionWork);

Согласно мое требование, я хочу запустить Worker, когда устройство подключено к Power. Но обработанный слушатель запускается сразу после постановки его в очередь с помощью WorkManager, и к устройству или эмулятору не подключено питание. Я пробовал эту команду, чтобы отключить эмулятор: adb shell dumpsys battery unplug

Я знаю, что есть аналогичный вопрос здесь . Но мне это не помогает.

Кто-нибудь может подсказать, в чем причина такого поведения ??

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