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

Best approach for creating a reusable object to get users location?

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

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

如果使用 DI 框架对你的情况来说有点过分,你仍然应该采用组件方法并编写你自己的(接近微不足道的)逻辑以在需要时提供它。

这也将成为单元测试的必要条件,因为这样您就可以存根/模拟位置配置。

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