1. ホーム
  2. android

[解決済み] Android MVVM ViewModelでContextを取得する方法

2022-06-18 06:34:24

質問

私はアンドロイドアプリでMVVMパターンを実装しようとしています。私はViewModelsがアンドロイド固有のコードを含むべきではないと読んだことがあります(テストを容易にするために)、しかし私は様々なこと(xmlからのリソースの取得、環境設定の初期化など)のためにコンテキストを使用する必要があります。これを行うための最良の方法は何ですか?私が見たのは AndroidViewModel はアプリケーションコンテキストへの参照を持っていますが、それはアンドロイド固有のコードを含んでいるので、私はそれがViewModelにあるべきかどうかわかりません。また、これらはアクティビティライフサイクルイベントに結びつきますが、私はコンポーネントのスコープを管理するためにdaggerを使用しているので、それがどのように影響するかはわかりません。私はMVVMパターンとDaggerの初心者なので、どんな助けでも感謝します。

どのように解決するのですか?

結局、ViewModelに直接Contextを持たせるのではなく、ResourceProviderなどの必要なリソースを与えてくれるプロバイダクラスを作って、そのプロバイダクラスをViewModelにインジェクトさせました。