Я пытаюсь использовать 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
Я знаю, что есть аналогичный вопрос здесь . Но мне это не помогает.
Кто-нибудь может подсказать, в чем причина такого поведения ??