1

Android 编程对我来说是一个全新的东西,我一直在玩 android 的位置,我有同样的问题,我要定期向后台服务器发送位置更新,我正在使用 AlarmManager/LocationManager 方法,设置具有定义间隔的警报管理器,然后当警报接收器被触发时,它将获取设备的当前位置(使用 locationManager)并通过其 onReceive 方法将其发送到服务器。我发现这个 FusedLocation 是一个很好的替代品,因为 LocationManager 给了我一个额外的工作来获得最好的位置提供者。是否可以在没有alarmManager的情况下使用fusedLocation api在后台定期发送位置更新?如果是这样,我该怎么做?提前致谢!

4

1 回答 1

1

根据LocationRequest 文档

在这两个极端之间是一个非常常见的用例,其中应用程序肯定希望以指定的时间间隔接收更新,并且可以在可用时更快地接收它们,但仍然希望低功耗影响。这些应用程序应考虑将PRIORITY_BALANCED_POWER_ACCURACY与更快的setFastestInterval(long)(例如 1 分钟)和更慢的setInterval(long)(例如 60 分钟)结合使用。他们只会在setInterval(long)设置的时间间隔内被分配权力责备,但仍然可以接收由其他应用程序以高达setFastestInterval(long)的速率触发的位置. 这种请求风格适用于许多位置感知应用程序,包括后台使用。如果您在收到更新后执行繁重的工作(例如使用网络),请务必小心限制setFastestInterval(long) 。

这使您可以保证您将根据您使用setInterval(long)设置的时间间隔获取位置更新,从而为您提供与定期警报等效的行为,但如果其他应用程序请求位置信息,您可能会像您一样频繁地获取位置信息setFastestInterval(long) - 如果您只想以设定的时间间隔更新位置,您可以将最快的时间间隔设置为您的时间间隔。

于 2015-04-27T17:35:21.410 回答