Android架构组件JetPack之WorkManager完全解析(五),快速上手

本文详细介绍了Android JetPack组件中的WorkManager,包括如何创建Worker,doWork()方法的返回值类型,以及WorkRequest的两种类型OneTimeWorkRequest和PeriodicWorkRequest的使用。此外,还讲解了WorkManager的约束条件、任务状态检查和取消,以及多任务调度策略,最后提到了使用WorkManager时可能遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

@NonNull
@Override
public Worker.Result doWork() {

Context applicationContext = getApplicationContext();

try {

Bitmap picture = BitmapFactory.decodeResource(
applicationContext.getResources(),
R.drawable.test);

return Worker.Result.SUCCESS;

} catch (Throwable throwable) {

return Worker.Result.FAILURE;

}
}
}

在上面的MyWorker实例中,继承了Worker 并且重写了doWork()方法,需要注意的是doWork()方法是有返回值Worker.Result的,可以在任务执行成功是返回Worker.Result.SUCCESS,在任务执行出现异常时返回Worker.Result.FAILURE
doWork()方法的返回值主要有三种
1、Worker.Result.SUCCESS 表示任务执行成功

2、Worker.Result.FAILURE 表示任务执行失败

3、Worker.Result.RETRY 通知WorkManager之后再尝试执行该任务

WorkRequest
WorkRequest要指定执行任务的Worker,也可以给WorkRequest加一些规则,比如说什么时候执行任务,任务执行一次还是多次,每一个WorkRequest都有一个自动产生的唯一ID,可以根据唯一ID获取对应任务的状态以及是否取消对应的任务。如下图WorkRequest有两个实现类如下图:

1、OneTimeWorkRequest 任务只执行一次

OneTimeWorkRequest myWorkRequest =
new OneTimeWorkRequest.Builder(MyWorker.class)
.build();
//将上面定义的MyWorker加入到OneTimeRequest.Builder方法中
WorkManager.get

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值