安卓定位locationListener诸疑

红茶绅士
  • 67

网络定位和gps定位都开,有gps用gps 么有就用网络

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 2000, 0, new MyLocationListener());

private class MyLocationListener implements LocationListener{
    @Override
    public void onLocationChanged(Location location) {
            updateLocation(location);
        }
    //...
}

LocationListener的四个重载函数具体的调用时间和调用逻辑是什么:

  1. onLocationChanged是在每次收到provider推送的数据后执行吗,那么调用requestLocationUpdates函数注册监听时的参数(最短更新时间和最短更新距离)是什么逻辑?为何参数2000毫秒间隔我却无法受到2000毫秒的返回,这是由于provider处理数据慢的缘故么?

  2. onStatusChanged是指provider的状态变化,那么状态变化的信息从哪提供?是基于provider推送过来的数据包?还是android自身的检测机制?这跟providerEnabled有什么区别?如何判断一个provider是否可用(我不是要判断是不是在系统开启了功能,而是判断能和这个provider建立连接获取数据)?

  3. onProviderEnabled/Disabled 是用户手动启用/关闭时调用吗?

回复
阅读 6.1k
1 个回答

requestLocationUpdates的第二个参数就是位置更新的时间间隔,单位是毫秒,2000就是2秒更新一次

宣传栏