0
我想學習RxJava2,並將我的AsyncTasks轉換爲Observable。Asynctask status &&取消等效於RxJava2 Observable?
我有下面這段代碼,我試圖轉換。
if(asyncTask.getStatus() == AsyncTask.Status.RUNNING){
asyncTask.cancel();
}
asyncTask = new CustomTask();
asyncTask.execute(input);
我試圖重新創建以下與一次性使用。
Disposable currentTask;
PublishSubject input = PublishSubject.create();
對於每一個輸入
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()));
然而,currentTask
總是空。爲什麼?這是做錯了嗎?
並非所有'subscribe(...)'方法都返回'Disposable'。你能否至少暗示你傳遞給'subscribe(...)'的參數? – Jon
你是否試圖在任何時候清空'currentTask'?另外,你可以添加任何其他你使用'PublishSubject輸入'的地方嗎?我懷疑你可能會濫用這個主題,這是造成你的問題。 – Jon