RXJava2. 我需要处理只发射一次的流吗? (Single, Maybe)

8

我的代码中有很多Single,例如:

Disposable disp = Single.fromCallable(()-> loadData())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            .subscribe(res-> showInUI(res),
                    throwable -> Log.e(TAG, throwable.getMessage()))
            );

据我从文档中了解到,ObservableSingle之间的区别在于Single可以响应错误、不响应、响应成功并且仅发出一次。 现在我没有任何处置措施,一切都很好。 那么我需要执行disp.dispose()吗?
1个回答

6
是的,确实,无论是Single/Observable/Completable都无所谓。
重要的是你不想让UI绑定到一些会泄漏你的Activity的后台工作上。
这也很重要,因为你不希望在UI超出某个点(例如在销毁Activity后)收到通知,这可能会导致NPE或其他问题。 除此之外,当用户离开/关闭Activity/Screen时取消和停止昂贵的后台工作是一个好的实践,以清除资源。
所有这些考虑都适用于所有Observable类型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接