の違いはViewModelには、特定の活動およびフラグメントのインスタンスをoutlivesので、それはビューを参照することはありません何この質問を持つ人のためのViewModelとAndroidViewModel
、Androidのドキュメントを1として、
である、またはアクティビティコンテキストへの参照を保持できる任意のクラス。 ViewModelにアプリケーション・コンテキストが必要な場合(たとえば、システム・サービスを見つけるために)、AndroidViewModelクラスを拡張し、コンストラクタでApplicationを受け取るコンストラクタを持つことができます(ApplicationクラスはContextを拡張するため)。
マニュアルは、ここで見つけることができます: https://developer.android.com/topic/libraries/architecture/viewmodel.html
編集:重複する説明については : 私はあなたがのViewModelにクラスを拡張するだけでなく、AndroidViewModelできることを意味します。どちらを拡張すべきかは、上記の説明だけです。上記のリンク私のコメントに展開するには、一般的にMVVMアーキテクチャのViewModelにではなくandroid.arch.lifecycle.ViewModel
あなたはViewModelとAndroidViewModelにクラスを拡張することができます。どちらを拡張すべきかは、上記の説明だけです。上のリンクは、MVVMアーキテクチャのViewModelについて一般的であり、android.arch.lifecycle.ViewModelではありません。 –
@ M0CH1R0N:上記のコメントをお読みください。この投稿が重複していると感じたら、できるだけ早く削除します。ありがとう。 –
私の悪い、私はあなたの質問を再読した。 AndroidViewModelはViewModelを継承しているので、すべての機能が同じです。 AndroidViewModelの唯一追加された機能は、コンテキスト認識であるということです。AndroidViewModelを初期化するときは、コンテキストとしてパラメータを渡す必要があります。たとえば、トーストを表示する場合に使用できます。 – M0CH1R0N