编程语言
首页 > 编程语言> > android-仅在为该提供程序注册了侦听器时才调用onProviderEnabled吗?

android-仅在为该提供程序注册了侦听器时才调用onProviderEnabled吗?

作者:互联网

问题很简单:要在启用特定提供程序时调用位置侦听器的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和网络提供商注册,然后才能收到通知.

是否可以从尚未启用的位置提供者那里注册更新?

解决方法:

For a location listener’s onProviderEnabled() method to be called when a specific provider is enabled, must that listener have already requested updates from that same provider?

是的,您需要注册一个提供程序才能接收来自它的回调.

向一个提供程序注册的操作是通知该提供程序侦听器存在.如果您不向其注册,那么现在可以通过它知道侦听器的存在.

Is it ok to register for updates from a location provider that is not yet enabled?

是.

标签:listener,android-location,android
来源: https://codeday.me/bug/20191031/1976373.html