Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Threading di RxWorker

Kami menyediakan interoperabilitas antara WorkManager dan RxJava2. Untuk memulai, sertakan dependensi work-rxjava2 selain work-runtime pada file gradle Anda. Kemudian, perluas RxWorker, bukan Worker. Terakhir, ganti metode RxWorker.createWork() agar menampilkan Single<Result> yang menunjukkan Result eksekusi Anda, seperti berikut:

    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() };
        }
    }
    

Perlu diperhatikan bahwa RxWorker.createWork() dipanggil pada thread utama, tetapi nilai yang ditampilkan secara default adalah berlangganan pada thread latar belakang. Anda dapat mengganti RxWorker.getBackgroundScheduler() untuk mengubah thread berlangganan.

Menghentikan RxWorker akan membuang Observer dengan tepat, sehingga Anda tidak perlu menangani penghentian pekerjaan dengan cara khusus apa pun.