关于android:最佳实践:在后台获取位置更新

Best practices: Getting location updates in background

开发一个在后台更新用户位置的安卓应用程序。现在,谷歌为此提供了两种方式:

  • 通过 getlastlocation() 函数获取用户的最后位置。可以设置警报管理器,并在广播接收器和服务的帮助下,可以连续更新位置。
    例如:

  • 向融合位置提供者请求定期更新,如下所示

  • 除非用户这样做,否则在 Android 不会终止后台服务的情况下,在后台持续获取位置更新的最佳方式是什么?


    第二种方法"请求定期位置更新"处于活动状态。它允许您更具体地调整更新频率以及在什么情况下您将获得更新。您是在告诉 Android 您希望经常更新和/或如果用户移动了超过 X 米。

    第一种使用getLastLocation()的方法是被动的。这意味着您无法控制更新的频率或质量。您基本上是在搭载其他应用程序的位置更新请求。如果有其他应用程序要求频繁更新,则调用 getLastLocation() 将为您提供相对较新/准确的位置。但是,如果其他应用程序没有请求频繁更新(或者用户可能根本没有运行任何其他应用程序),对 getLastLocation() 的调用可能会返回非常陈旧(不准确/旧)的数据。