Android会让每项活动获取位置信息吗?

时间:2016-09-14 20:29:20

标签: android android-activity service connection

在活动A中,我从A1和A2获得了2个片段,用户可以访问活动B和活动C.我的问题是,活动B和C都需要位置信息(如Lat,lng)。如何在普通UI绘图中没有大的滞后的情况下实现这一目标?

我有2个不成功的计划:

  1. 直接使用A获取位置,将值传递给A1和A2,最后传递给B和C.如果用户在室内,位置信息,则需要一段时间才能收到。如果用户在没有位置信息的情况下访问B和C会怎样?

  2. 使用服务。但是,我不需要长时间的位置识别,甚至服务都可以向所有人发送广播,B和C可以在他们的onCreate()之前接收广播消息吗?此外,广播需要一段时间才能接收,这会显着影响初始化。

2 个答案:

答案 0 :(得分:1)

嘿,你实际上有很多选择

  • 使用GoogleApiClient创建绑定服务。将此服务绑定到您需要的活动并在其中接收数据。
  • 使用事件总线。使用GoogleApiClient创建类以获取位置,然后仅在需要的活动/片段中捕获数据
  • 使用Dagger2将GoogleApiClient @module注入您需要的活动/片段。

希望我帮助你;)

答案 1 :(得分:0)

考虑此事件总线模式实现。您应该考虑的唯一事情是传递UI线程实施器。

http://square.github.io/otto/