只有在监听器为该提供者注册时才调用onProviderEnabled吗?

时间:2012-12-12 21:04:07

标签: android listener android-location

问题很简单:要在启用特定提供程序时调用位置侦听器的onProviderEnabled()方法,该侦听器是否已从同一提供程序请求更新?

例如,如果您从网络提供商处注册位置管理器的位置更新:

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0,
                0, locationListener);

侦听器有一个onProviderEnabled()方法:

@Override
    public void onProviderEnabled(String provider) {
        Log.d(TAG, provider + " provider enabled"); }

如果我现在打开GPS位置提供程序,是否会调用onProviderEnabled?

根据我的经验,除非位置监听器也已注册接收来自GPS提供商的更新,否则不会被呼叫。如果它应该是这样的,那么就必须向GPS和网络提供商注册,以便通知它已被启用。

是否可以从尚未启用的位置提供商处注册更新?

1 个答案:

答案 0 :(得分:4)

  

对于在启用特定提供程序时要调用的位置侦听器的onProviderEnabled()方法,该侦听器是否已从同一提供程序请求更新?

是的,您需要注册一个提供商才能从中接收回调。

这是向一个提供程序注册的操作,通知该提供程序存在侦听器。如果你没有注册它,现在有办法让它知道一个监听器存在。

  

是否可以从尚未启用的位置提供程序注册更新?