创建可重用对象以获取用户位置的最佳方法?

时间:2015-03-01 23:17:01

标签: android android-fragments location google-play-services

我有一个应用程序,目前包含2个活动。在第一个活动中,有Fragment,其本身包含MapFragment。另一个活动包含ViewPager,其中包含两个片段,其中一个片段也是Fragment,其本身包含MapFragment。在包含MapFragment的两个片段中,我需要请求用户当前位置(仅在用户请求时一次)。要获取用户位置,我正在使用Google Play服务位置API。这里最好的方法是避免在包含MapFragment的两个提到的片段中重复代码(管理连接错误等)?我应该创建一个IntentService还是尝试使用普通的java类进行管理,还是有更好的方法,我目前不知道?

2 个答案:

答案 0 :(得分:0)

我会将公共代码作为一个组件(可能是一个POJO)并使用依赖注入框架(可能是dagger)将其注入我需要的地方。

如果使用DI框架对于您的情况来说有点过头,您仍然应该采用组件方法并编写您自己的(接近于普通的)逻辑以在需要的地方提供它。

在单元测试方面,这也是必须的,因为您可以存根/模拟位置配置。

答案 1 :(得分:0)

我制作自定义Application并在用户请求时调用getLastLocation - 然后将该位置存储在字段中并为该字段创建一个getter。