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

Rai*_*ker 6 java rx-java rx-java2

我的代码中有很多Single,比如

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

当我从资料了解,之间的差别Observable,并Single是单可以响应错误,决不响应,有成功的回答它发射只有一次.现在我没有在任何地方处置,一切正常.

所以我需要执行disp.dispose()吗?

yos*_*riz 5

是的,确实,它是否是Single/ Observable/ 并不重要Completable.
这很重要,因为您不希望将UI绑定到某些后台工作,这会泄露您的Activity.
这也是一个问题,因为您不希望在UI之外(在您Activity被销毁之后)获得可能导致NPE或其他问题的通知.除此之外,当用户离开/关闭Activity/ 时,取消和停止昂贵的后台工作是一个很好的实践Screen,以便清除资源.
所有这些考虑都适用于所有Observable类型.