在下面的代码中,如果(未被调用)mSafeObserver.isDisposed();
总是返回空指针异常。isDatabaseEmpty == false
zipped.subscribe(mSafeObserver);
private SafeObserver<ResponseHelper> mSafeObserver;
private Observer<ResponseHelper> observer = new Observer<ResponseHelper>() {
// ...
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSafeObserver = new SafeObserver<>(observer);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
// ...
if (isDatabaseEmpty) {
zipped.subscribe(mSafeObserver);
} else {
initRecycler();
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (mSafeObserver != null && !mSafeObserver.isDisposed())
mSafeObserver.dispose();
}
在 rxJava 1.0 中,这段代码是正确的:
@Override
protected void onDestroy() {
super.onDestroy();
if (mSubscription != null && !mSubscription.isUnsubscribed())
mSubscription.unsubscribe();
}
如何检查我是否可以处置 Disposable?