创建可重用对象以获取用户位置的最佳方法?
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。
我有一个应用程序,目前包含 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。