我正在尝试在我的 android 应用程序中实现 MVVM 模式。我已经读过 ViewModels 不应该包含特定于 android 的代码(以使测试更容易),但是我需要为各种事情使用上下文(从 xml 获取资源、初始化首选项等)。做这个的最好方式是什么?我看到 AndroidViewModel
引用了应用程序上下文,但是它包含特定于 android 的代码,所以我不确定它是否应该在 ViewModel 中。这些也与 Activity 生命周期事件相关,但我使用 dagger 来管理组件的范围,所以我不确定这会如何影响它。我是 MVVM 模式和 Dagger 的新手,因此不胜感激!
原文由 Vincent Williams 发布,翻译遵循 CC BY-SA 4.0 许可协议
我最终做了什么,而不是直接在 ViewModel 中使用 Context,而是创建了提供程序类,例如 ResourceProvider,它可以为我提供所需的资源,并且我将这些提供程序类注入到我的 ViewModel