2017-06-02 3 views

答えて

1

ViewModels are intimately tied to Activities or Fragments、Androidライフサイクルのもの。これらのオブジェクトに非常に密接に結びついているため、依存性注入ライブラリでは提供しない機能、機能、ニーズがあります。 ViewModelが提供する最も重要な機能は、構成の変更時に状態を保持する機能ですが、開発者が最も必要とするアクティビティを別々に起動することはできません。別のアクティビティの起動の間に保存される状態が必要な場合は、Room Persistence Libraryなどのデータベースレイヤを使用します。

したがって、単純な答えは「はい」です。

ViewModelProviders.of(activity).get(MyViewModel.class) 

を使用して、ビューモデルをインスタンス化して参照することをお勧めします。

0

ViewModelStoreはViewModelの依存性注入にはまったく関係しません。これは、特定の所有者のViewModelオブジェクトのコンテナです。 ViewModelStoresのメソッドを使用して、アクティビティまたはフラグメントのViewModelStoreを取得できます。

ViewModelStore vms = ViewModelStores.of(this); 

ViewModelStoreは、必要に応じて特定の所有者のビューモデルオブジェクトのライフタイムを制御します。