答えて

1

あなたがアンドロイドアーキテクチャコンポーネントViewModelを使用しないと、両方のライブラリが同じになると思います。

ViewModelを使用すると、デバイスのローテーション時のデータ準備を防ぐことができます。つまり、デバイスのローテーションに応じてアクティビティを再起動する必要がある場合でも、ViewModelはメモリ内にとどまります。

このようなコンポーネントはRxLifecycleライブラリには存在しません。

2

RxLifecycleを使用する必要はありませんが、RxJavaを使用する場合は、RxLifecycleを使用すると便利です。

RxJavaを使用する場合は、自分自身の購読と登録解除に気を付ける必要があります。アンドロイドnew LiveData(これはRx Observablesに似ています)は、android-arch-lifecycleを使用してこれ自体を行います。また、RxJavaでのライフサイクルの認識を希望する場合は、RxLifecycleを使用できます。 Githubページに記載されているように、RxLifecylceにはライフサイクルプロバイダーが必要です。 Lifecycle Providerを生成するソリューションの1つは、アンドロイドアーチライフサイクルを使用することです。

public class MyActivity extends LifecycleActivity { 
private final LifecycleProvider<Lifecycle.Event> provider 
    = AndroidLifecycle.createLifecycleProvider(this); 

@Override 
public void onResume() { 
    super.onResume(); 
    myObservable 
     .compose(provider.bindToLifecycle()) 
     .subscribe(); 
} 

編集:作成者recomendsがAutoDisposeを使用するか、手動で代わりにsubscrptionを処理するために、なぜRxLifecycleは、いくつかのケースで問題が発生する場合があり、thatsの。彼はthis postの問題について説明します。

関連する問題