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
如果提供者没有合适的权限。