android 架构组件na,Android 新架构组件 -- WorkManager

Android WorkManager

compile "android.arch.work:work-runtime:1.0.0-alpha02"

继承Worker类并实现doWork()方法

public class MineWorker extends Worker {

@NonNull

@Override

public WorkerResult doWork() {

LogUtils.i("MineWorker--doWork");

return WorkerResult.SUCCESS;

}

}

想要该Worker执行,需要调用WorkManager将该Worker添加到队列中

WorkManager workManager = WorkManager.getInstance();

OneTimeWorkRequest oneTimeWorkRequest = new OneTimeWorkRequest.Builder(MineWorker.class).build();

workManager.enqueue(oneTimeWorkRequest);

结果输出:

MineWorker--doWork

在手机充电时,并且有网的情况下执行某个任务:

// 在手机充电时,并且有网的情况下执行某个任务

Constraints constraints = new Constraints.Builder()

.setRequiredNetworkType(NetworkType.CONNECTED)

.setRequiresCharging(true)

.build();

OneTimeWorkRequest constraintsOneTimeWorkRequest1 = new OneTimeWorkRequest.Builder(MineWorker.class).setConstraints(constraints).build();

workManager.enqueue(constraintsOneTimeWorkRequest1);

顺序的去执行不同的OneTimeWorker :

// OneTimeWorker顺序执行

OneTimeWorkRequest workA = new OneTimeWorkRequest.Builder(MineWorker.class).build();

OneTimeWorkRequest workB = new OneTimeWorkRequest.Builder(MineWorker.class).build();

OneTimeWorkRequest workC = new OneTimeWorkRequest.Builder(MineWorker.class).build();

OneTimeWorkRequest workD = new OneTimeWorkRequest.Builder(MineWorker.class).build();

OneTimeWorkRequest workE = new OneTimeWorkRequest.Builder(MineWorker.class).build();

WorkContinuation chain1 = WorkManager.getInstance()

.beginWith(workA)

.then(workB);

WorkContinuation chain2 = WorkManager.getInstance()

.beginWith(workC)

.then(workD);

WorkContinuation chain3 = WorkContinuation

.combine(chain1, chain2)

.then(workE);

chain3.enqueue();

定期的去执行某一个worker:

// 定期执行

Constraints constraints = new Constraints.Builder()

.setRequiredNetworkType(NetworkType.CONNECTED)

.setRequiresCharging(true)

.build();

PeriodicWorkRequest periodicWorkRequest = new PeriodicWorkRequest

.Builder(MineWorker.class, 3, TimeUnit.SECONDS)

.setConstraints(constraints)

.build();

workManager.enqueue(periodicWorkRequest);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值