RXJava2。我是否需要处理一次发出的流? (单身,也许)

RXJava2. Do I need dispose streams which emits once? (Single, Maybe)

我的代码里有很多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() 吗?

是的,的确,是Single/Observable/Completable.
都无所谓 重要的是你不想让你的 UI 绑定到一些后台工作,这会泄露你的 Activity.
这也很重要,因为您不想在 UI 超出某个时间点(例如,在您的 Activity 被销毁之后)收到可能导致 NPE 或其他问题的通知。 除此之外,当用户 leave/close 和 Activity/Screen 存在时,取消和停止昂贵的后台工作是一个很好的做法,以清理资源。
所有这些注意事项对所有 Observable 类型都是通用的。