私はRxJava2を学び、AsyncTasksをObservablesに変換しようとしています。Asynctask status && RxJava2で同等のキャンセルが可能ですか?
変換しようとしている次のコードがあります。
if(asyncTask.getStatus() == AsyncTask.Status.RUNNING){
asyncTask.cancel();
}
asyncTask = new CustomTask();
asyncTask.execute(input);
Disposablesで次のように再作成しようとしました。すべての入力
if(currentTask != null) currentTask.dispose();
currentTask = input
.map(// Network calls
// returns CustomObject)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(result -> {
// do work with result
}, throwable -> Log.e(TAG, throwable.toString()));
については
Disposable currentTask;
PublishSubject input = PublishSubject.create();
しかし、currentTask
は常にヌルです。どうして?これは間違った方法ですか?
すべて '(...)購読'メソッドは 'Disposable'を返しません。あなたは少なくともあなたが 'subscribe(...)'に渡すparamをヒントできますか? – Jon
あなたはいつでも 'currentTask'をnullにしようとしていますか?また、 'PublishSubject input'を使っているところに他の場所を追加できますか?私はあなたが主題を悪用していると思われ、あなたの問題を引き起こしています。 – Jon