我想做一个应用程序,将包括五个不同的片段。在每个片段中,我需要设备的GPS位置,但目的将有所不同。
为了避免为每个片段实现五次FusedLocationProviderClient,我考虑在MainActivity中执行一次,然后将结果发送到显示的片段。
作为一个java编程的初学者,我向你寻求指导。我如何确定设备的GPS位置,并且位置自动发送(在每次更新时)到活动片段?
也许像一个服务的东西?任何样本代码将是受欢迎的。提前感谢!
我想做一个应用程序,将包括五个不同的片段。在每个片段中,我需要设备的GPS位置,但目的将有所不同。
为了避免为每个片段实现五次FusedLocationProviderClient,我考虑在MainActivity中执行一次,然后将结果发送到显示的片段。
作为一个java编程的初学者,我向你寻求指导。我如何确定设备的GPS位置,并且位置自动发送(在每次更新时)到活动片段?
也许像一个服务的东西?任何样本代码将是受欢迎的。提前感谢!
1条答案
按热度按时间busg9geu1#
对于这个问题,有一个简单的解决方案,使用
ViewModel
。其概念是初始化一个状态保持器,并在片段之间共享该持有者的同一个示例。
该保持器的示例存储在您的Activity中。
ViewModel可能如下所示
在您的Activity中获取该viewModel的示例。我们使用ViewModelProvider工厂来实现此操作。
在你的所有片段中你可以观察到这些数据
在您的应用程序中包含必要的相依性
build.gradle
单击此处了解有关
ViewModel
的更多信息