3

问题很简单:对于在启用特定提供程序时调用位置侦听器的 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 和网络提供商注册,以便通知它已启用。

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

4

1 回答 1

4

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

是的,您需要注册提供者才能接收来自它的回调。

这是向一个提供者注册的操作,它通知该提供者存在一个侦听器。如果您不向它注册,它现在可以知道存在一个侦听器。

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

是的。

于 2012-12-12T21:15:43.430 回答