如何在ViewModel中注入SharedPreferences?

时间:2019-01-31 12:29:27

标签: android dagger-2 android-mvvm

我正在开发一种带有MVVM方法的android应用,我需要访问ViewModel中的sharedpreferences,但我不知道该怎么做。

我知道,如果类从AndroidViewModel继承,则可以访问上下文,但是我想知道是否可以通过注入来实现。

对于注射,我使用的是Dagger 2。

谢谢

1 个答案:

答案 0 :(得分:5)

有可能。正如您提到的,ViewModel必须扩展AndroidViewModel,然后只需调用getApplication()并在访问SharedPreferences时将其用作上下文即可。

ViewModel中使用 Dagger 2 :您无法通过参数注入或字段注入直接在ViewModel中注入任何东西,因为您将需要使用{{1 }},然后先将对象注入那里,然后将它们传递给您想要的ViewModel Factory


要了解有关将{strong> Dagger 2 与ViewModel一起使用的更多信息,请参阅this article


祝你好运:)