【发布时间】:2019-12-15 10:28:01
【问题描述】:
我有以下代码
Single.just(settings.toString())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SingleObserver<String>() {
private Disposable disposable;
@Override public void onSubscribe(Disposable d) {
this.disposable = d;
}
@Override public void onSuccess(String s) {
webViewFragment.onInjectMessage(s, null);
this.disposable.dispose();
}
@Override public void onError(Throwable e) {
this.disposable.dispose();
}
});
我在后台线程中,需要将字符串注入WebView,只能在主线程上完成,这就是我调用.observeOn(AndroidSchedulers.mainThread()的原因
然而,当我阅读SingleObserver on GitHub 的示例代码时,我看到了以下内容:
return new SingleObserver<String>() {
@Override public void onSubscribe(Disposable d) {
Log.d(TAG, " onSubscribe : " + d.isDisposed());
}
@Override public void onSuccess(String value) {
textView.append(" onNext : value : " + value);
textView.append(AppConstant.LINE_SEPARATOR);
Log.d(TAG, " onNext value : " + value);
}
@Override public void onError(Throwable e) {
textView.append(" onError : " + e.getMessage());
textView.append(AppConstant.LINE_SEPARATOR);
Log.d(TAG, " onError : " + e.getMessage());
}
};
他们不会处理SingleObserver。
我是否需要在onSuccess 和/或onError 中调用this.disposable.dispose();(两者?或只是在onSuccess?),还是这个类会自行处理,如 GitHub 示例中所示?
我在内存泄漏的情况下问这个问题。
这个问题源于RxAndroid `Observable...subscribe` highlighted in Android Studio
【问题讨论】:
标签: android memory-leaks rx-java2 rx-android reactivex