2017-05-02 11 views
0

isDatabaseEmpty == falsezipped.subscribe(mSafeObserver);が呼び出されていない場合)のコードでは、mSafeObserver.isDisposed();は常にnullポインタ例外を返します。 rxJava 1.0で使い捨てRxJava 2.0をAndroidにインストールするには?

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(); 
} 

このコードは正しいです:

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    if (mSubscription != null && !mSubscription.isUnsubscribed()) 
     mSubscription.unsubscribe(); 
} 

私は使い捨てを配置することができますかどうかを確認する方法は?

答えて

0

私はが、私はそれを

private CompositeDisposable mDisposable = new CompositeDisposable(); 
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 
      .doOnSubscribe(mDisposable::add) 
      .subscribe(mSafeObserver); 
    } else { 
     initRecycler(); 
    } 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    mDisposable.dispose(); 
} 
を行うだろう方法を指しますが、このzip形式のか分かりません
関連する問題