首页 > 解决方案 > 如何在 Android MVVM ViewModel 中获取上下文

问题描述

我正在尝试在我的 android 应用程序中实现 MVVM 模式。我已经读过 ViewModels 不应该包含特定于 android 的代码(以使测试更容易),但是我需要为各种事情使用上下文(从 xml 获取资源、初始化首选项等)。做这个的最好方式是什么?我看到它AndroidViewModel引用了应用程序上下文,但是它包含特定于 android 的代码,所以我不确定它是否应该在 ViewModel 中。这些也与 Activity 生命周期事件相关,但我使用 dagger 来管理组件的范围,所以我不确定这会如何影响它。我是 MVVM 模式和 Dagger 的新手,因此不胜感激!

标签: androidmvvmdagger-2android-context

解决方案


您可以使用Application由 提供的上下文AndroidViewModel,您应该扩展AndroidViewModel它只是一个ViewModel包含Application引用的上下文。


推荐阅读