Android 让每个 activity 获取位置信息?
Android make every activity get location information?
在 activity A 中,我从 A1 和 A2 得到了 2 个片段,用户可以访问 Activity B 和 Activity C。我的问题是,activity B 和 C 需要位置信息(如 Lat、lng)。我怎样才能在正常 UI 绘图中没有巨大延迟的情况下实现这一目标?
我有2个不成功的方案:
直接用A获取位置,传值给A1和A2,最后传给B和C。如果用户在室内,位置信息,需要一段时间才能收到。如果用户在没有位置信息的情况下访问B和C怎么办?
使用服务。但是,我不需要很长时间的位置识别,而且,即使服务可以向所有人发送广播,B 和 C 可以在他们的 onCreate() 之前接收广播消息吗?此外,广播需要一段时间才能接收,这会显着影响初始化。
考虑这个事件总线模式的实现。您唯一应该考虑的是传递一个 UI 线程执行器。
嘿你实际上有很多选择
- 创建包含 GoogleApiClient 的绑定服务。将此服务绑定到您需要的活动并在其中接收数据。
- 使用事件总线。使用 GoogleApiClient 创建 class 以获取位置,然后只需在 activities/fragments 中捕获您需要的数据
- 使用 Dagger2 将 GoogleApiClient @module 注入到您需要的activities/fragments。
希望对你有所帮助 ;)
在 activity A 中,我从 A1 和 A2 得到了 2 个片段,用户可以访问 Activity B 和 Activity C。我的问题是,activity B 和 C 需要位置信息(如 Lat、lng)。我怎样才能在正常 UI 绘图中没有巨大延迟的情况下实现这一目标?
我有2个不成功的方案:
直接用A获取位置,传值给A1和A2,最后传给B和C。如果用户在室内,位置信息,需要一段时间才能收到。如果用户在没有位置信息的情况下访问B和C怎么办?
使用服务。但是,我不需要很长时间的位置识别,而且,即使服务可以向所有人发送广播,B 和 C 可以在他们的 onCreate() 之前接收广播消息吗?此外,广播需要一段时间才能接收,这会显着影响初始化。
考虑这个事件总线模式的实现。您唯一应该考虑的是传递一个 UI 线程执行器。
嘿你实际上有很多选择
- 创建包含 GoogleApiClient 的绑定服务。将此服务绑定到您需要的活动并在其中接收数据。
- 使用事件总线。使用 GoogleApiClient 创建 class 以获取位置,然后只需在 activities/fragments 中捕获您需要的数据
- 使用 Dagger2 将 GoogleApiClient @module 注入到您需要的activities/fragments。
希望对你有所帮助 ;)