什麼線程退訂當我們沒有指定它,但仍然指定subscribeOn的線程時默認爲? 我們是否需要指定我們希望取消訂閱的線程,即使它與subscribeOn中使用的線程相同?unSubscribeOn調用了什麼線程?我們應該叫它嗎?
或者是底部的兩個片段對un-subscription執行相同操作嗎?
選項1:
mSubscription.add(myAppProvider
.getSomeData()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.unsubscribeOn(Schedulers.io())
.subscribe(data -> handleData(data),
throwable -> handleError(throwable)
));
選項2:
mSubscription.add(myAppProvider
.getSomeData()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(data -> handleData(data),
throwable -> handleError(throwable)
));
我沒看Rx-Java docs但他們只解釋subscribeOn但隻字未提unSubscribeOn
嘿,謝謝你的回答。我喜歡你對unSubscribeOn正在發生的線程的解釋。然而,這個例子並不適用你在我創建的樣本中顯示的方式進行測試。對於我退訂也發生在同一個線程上。 '1'。想要修復您的代碼,以便我可以接受它?另一個是你提到的'文檔'實際上是一個樣本。不是真正的Rx-Java文檔。真正的文檔在這裏http://reactivex.io/intro.html。 – achie
好啊,絕對不是真正的文檔。你能發佈你用來檢查線程的完整代碼嗎? – drhr
是的,我將添加爲一個單獨的答案,以便您可以使用它來更新您的答案。或者可能會修復它,如果我在我的方法中做任何錯誤:) – achie