public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener, Looper looper)
注册当前活动以由指定的提供者定期通知。周期性地,提供的 LocationListener 将使用当前位置或状态更新来调用。
接收最新位置可能需要一段时间。如果需要即时位置,应用程序可以使用 getLastKnownLocation(String) 方法。
如果提供者被用户禁用,更新将停止,并onProviderDisabled(String)调用该方法。再次启用提供程序后,将调用 onProviderEnabled(String) 方法并重新开始位置更新。
可以使用minTime和minDistance参数控制通知的频率。如果minTime大于 0,LocationManager 可能会minTime在位置更新之间休息几毫秒以节省电力。如果大于 0,则仅当设备移动米minDistance时才会广播位置。minDistance要尽可能频繁地获取通知,请将两个参数都设置为 0。
后台服务应该小心设置一个足够高的值minTime,这样设备就不会因为一直保持 GPS 或无线电而消耗过多的电量。特别是不建议使用低于 60000ms 的值。
提供的 Looper 用于实现回调机制。
参数
- provider 要注册的提供者的名称
- minTime 通知的最小时间间隔,以毫秒为单位。此字段仅用作节省电量的提示,位置更新之间的实际时间可能大于或小于此值。
- minDistance 通知的最小距离间隔,以米为单位
- 每次位置更新都会调用其 onLocationChanged(Location) 方法的侦听器
- looper 一个 Looper 对象,其消息队列将用于实现回调机制。
投掷
IllegalArgumentException 如果提供者为空或不存在
IllegalArgumentException 如果侦听器为空
IllegalArgumentException 如果循环器为空
SecurityException如果提供者没有合适的权限。