我的代码中有很多Single
,例如
Disposable disp = Single.fromCallable(()-> loadData())
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(res-> showInUI(res),
throwable -> Log.e(TAG, throwable.getMessage()))
);
正如我从文档中所理解的那样,Observable
和Single
之间的区别在于Single可以回复错误,从不响应,响应成功并且只发出一次。
现在我不会在任何地方处置,一切正常。
所以我需要执行disp.dispose()
吗?
答案 0 :(得分:5)
是的,确实,它是Single
/ Observable
/ Completable
无关紧要。
这很重要,因为您不希望将UI绑定到某些后台工作,这会泄露您的活动。
这也很重要因为您不希望在UI之后(例如,在Activity
被破坏之后)在UI处获得可能导致NPE或其他问题的通知。
除此之外,当用户离开/关闭Activity
/ Screen
时,取消和停止昂贵的后台工作是一个很好的方法,以便清除资源。
所有这些注意事项对于所有Observable
类型都是通用的。