如果“电话未连接到调试器”和&“屏幕已锁定”,WorkManager将暂停

时间:2018-11-03 00:21:20

标签: android-workmanager

我有一个用于对媒体进行编码的前台服务,有时需要几个小时才能运行。在此过程中,通过记录进度值,我注意到如果达到此条件,一切都将暂停:

如果(phone not connected to adb && screen is locked)

所以我决定尝试this新的WorkManager

但是问题仍然存在。我抓起WorkManager sample project并试图记录一些下面增加的计数值。但是问题仍然存在。我什至尝试使用setRequiresDeviceIdle(true/false)都没有成功。

Honor 8 Lite 上运行 API 24

工人

public class WorkerTest extends Worker {

int a = 0;

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

@Override
public Result doWork() {
    try {
        Observable.interval(1, TimeUnit.SECONDS).doOnNext(new Consumer<Long>() {
                    @Override
                    public void accept(Long n){
                        Log.d("WorkerTest:doWork", String.valueOf(a++));
                    }
                }
        ).subscribe();
        return Result.SUCCESS;

    } catch (Exception e) {
        e.printStackTrace();
        return Result.FAILURE;
    }

}

}

CallerClass

public class Main extends AppCompatActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        OneTimeWorkRequest blurRequest = new OneTimeWorkRequest.Builder(WorkerTest.class)
        .build();
        WorkManager.getInstance().enqueue(blurRequest);

    }
}

0 个答案:

没有答案