O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Linhas de execução no RxWorker

Fornecemos interoperabilidade entre o WorkManager e o RxJava2. Para começar, inclua a dependência work-rxjava2, além da work-runtime no arquivo Gradle. Em vez de estender o Worker, estenda o RxWorker. Por fim, modifique o método RxWorker.createWork() para retornar um Single<Result> indicando o Result da sua execução, da seguinte maneira:

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

Observe que RxWorker.createWork() é chamado na linha de execução principal, mas o valor de retorno é inscrito em uma linha de execução em segundo plano por padrão. Você pode modificar RxWorker.getBackgroundScheduler() para mudar a linha de execução de inscrição.

Interromper um RxWorker descartará os Observers de maneira adequada, para que você não precise lidar com interrupções de trabalho de nenhuma forma especial.