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