使用标准和待定意图注册位置更新。
这个请求位置更新()
和请求单个更新()
将当前活动注册为由命名的提供程序或由匹配的提供程序定期更新指定的标准
,具有位置和状态更新。
接收第一次位置更新可能需要一些时间。如果需要一个直接的位置,应用程序可以使用getLastKnownLocation(字符串)
方法。
位置更新由以下任一方接收LocationListener(位置侦听器)
回调,或通过广播意图处理意图
.
如果调用方提供了待定意图,则位置会更新用密钥发送钥匙位置已更改
和a位置
值。
可以使用minTime参数控制位置更新间隔。位置更新之间的时间间隔永远不会小于minTime,尽管它可能更依赖于位置提供程序实现和其他应用程序请求的更新间隔。
为minTime选择一个合理的值对于保存电池寿命。每次位置更新都需要电源GPS、WIFI、Cell和其他无线电设备。选择一个高达在提供合理用户体验的同时,这也是可能的。如果您的应用程序不在前台并显示则应用程序应避免使用活动提供者(例如网络提供者
或GPS_提供商
),但如果您坚持,请选择最小时间5*60*1000(5分钟)或更高。如果您的应用程序位于前台并显示位置,然后选择一个更快的更新间隔。
minDistance参数还可用于控制位置更新的频率。如果它大于0,则位置提供商只会在以下情况下向您的应用程序发送更新位置至少更改了minDistance米,并且已超过至少minTime毫秒。然而,它是更多的位置提供商很难使用minDistance节省电力参数,所以minTime应该是节约电池的主要工具生活。
如果应用程序想被动地观察位置由其他应用程序触发的更新,但不使用否则,请使用被动_提供商
此提供程序不会主动打开或修改活动位置提供程序,所以您不需要对minTime和最小距离。但是,如果应用程序执行繁重的工作在位置更新(例如网络活动)时,您应该为minTime和/或minDistance选择非零值以进行速率限制如果另一个应用程序启用具有极快更新的位置提供商。
如果用户禁用了提供程序,则更新将停止,并发送提供商可用性更新。一旦再次启用提供程序,位置更新将立即恢复,提供商可用已发送更新。提供商还可以随时发送状态更新,提供特定于提供商的额外服务。如果提供了回调然后通过以下方式更新状态和可用性onProviderDisabled(字符串)
,onProviderEnabled(字符串)
或onStatusChanged(字符串,int,捆绑)
。或者,如果提供了待定意图,然后更新了状态和可用性广播意图是否有额外的键钥匙_遥控器_启用
或键_状态_已更改
.
如果LocationListener(位置侦听器)
已使用,但未指定Looper那么调用线程必须已经成为活套
螺纹,例如调用Activity。如果使用LocationListener(位置侦听器)
然后在提供的Looper线程上进行回调。
在使用Jellybean之前,minTime参数是只有一个提示,而一些位置提供程序实现忽略了它。从Jellybean及以后,它是Android兼容的必备功能设备来观察minTime和minDistance参数。