如何使用新的架构组件跟踪 android 中的当前位置?

3 android fusedlocationproviderapi android-livedata android-viewmodel android-architecture-components

我有一个项目,在其中我已经成功实现了位置跟踪功能,并且运行良好。我每 30 秒使用融合位置提供程序跟踪用户当前位置。(跟踪在 MainActivity 启动时开始)。

现在我计划使用新引入的 Android 架构组件来更新该项目。但我不知道如何使用视图模型实现位置跟踪。在MainActivity 或 Application类中,哪里是开始位置跟踪的正确位置?我应该使用ViewModel 还是 AndroidViewModel?如何实现这一目标。

Dam*_*tes 6

正确的方法是TrackingRepository在设备位置的后台线程中进行所有计算。创建一个MutableLiveData您将分配位置的位置。postValue()然后使用或更新其值setValue()。为此编写一个公共吸气剂MutableLiveData。该存储库将是您的位置 API。

然后您ViewModel应该调用存储库的方法并将其结果分配LiveDataViewModel. 然后在您的片段/活动中观察您的ViewModel. 正如应用程序架构指南所做的那样。

请记住使用依赖注入,这对新架构确实有帮助。

  • 有此设置的工作示例吗?很高兴看到一个有效的示例......我计划以任何一种方式进行测试。 (2认同)