FusedLocationProviderClient 在 Android 上适合 MVVM 的什么地方?

Where does FusedLocationProviderClient fit in MVVM on Android?

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

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

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

您可以通过从 AndroidViewModel 扩展您的 ViewModel 来获得 Context,然后您可以在不违反 MVVM 模式的情况下执行与 SharedPreferences 相关的操作。