WorkManager系列(十四)Threading in RxWorker

本文介绍了WorkManager和RxJava2的互操作性。在gradle文件中添加依赖,继承特定类,重写方法返回执行状态。默认返回值在后台线程订阅,可重写方法更改订阅线程。停止操作会正确处理,无需特殊处理工作停止情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

We provide interoperability between WorkManager and RxJava2. To get started, include work-rxjava2 dependency in addition to work-runtime in your gradle file. Then, instead of extending Worker, you should extend RxWorker. Finally override the RxWorker.createWork() method to return a Single<Result> indicating the Result of your execution, as follows:

public class RxDownloadWorker extends RxWorker {

    public RxDownloadWorker(Context context, WorkerParameters params) {
        super(context, params);
    }

    @Override
    public Single<Result> createWork() {
        return Observable.range(0, 100)
            .flatMap { download("https://www.google.com") }
            .toList()
            .map { Result.success() };
    }
}

Note that RxWorker.createWork() is called on the main thread, but the return value is subscribed on a background thread by default. You can override RxWorker.getBackgroundScheduler() to change the subscribing thread.

Stopping an RxWorker will dispose the Observers properly, so you don't need to handle work stoppages in any special way.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值