3

我正在开发一个 Android 应用程序,我必须在用户启动应用程序时向他们显示天气数据。我正在遵循 MVVM 架构,并且在我实现的所有用例中都成功地遵循了 MVVM,包括向用户显示数据和操作设置屏幕的 SharedPreferences。我FusedLocationProviderClient用于获取用户的位置,但它需要Context实例化。在遵守 MVVM 架构的同时,处理这个问题的理想方法应该是什么?

我无法实例化它,ViewModel因为它会导致Context被传递给ViewModel从而导致潜在的内存泄漏。

目前,我正在使用FusedLocationProviderClient我的Fragment并从那里更新数据,但这是一种非常幼稚的方法,显然违反了 MVVM。

4

1 回答 1

3

你可以通过从AndroidViewModel扩展你的 ViewModel 来获得Context,然后你可以在那里做与 SharedPreferences 相关的东西,而不会违反 MVVM 模式。

于 2019-08-29T12:02:47.347 回答