How to unregister a registerDefaultNetworkCallback (new ConnectivityManager.NetworkCallback () ...)

1.1k Views Asked by At

Using this code taken from: https://developer.android.com/training/basics/network-ops/reading-network-state I register a DefaultNetworkCallback:

connectivityManager.registerDefaultNetworkCallback(new ConnectivityManager.NetworkCallback() {
    @Override
    public void onAvailable(Network network) {
        Log.e(TAG, "The default network is now: " + network);
    }
    ....
});

How to unregister DefaultNetworkCallback from a function? I tried:

public void unregisterNetworkCallback(NetworkCallback networkCallback) {
   ConnectivityManager.unregisterNetworkCallback(networkCallback);
}

but I don't know what parameters to put.

1

There are 1 best solutions below

0
On

I have created a code that works for me for what I needed.

I create a variable:

private ConnectivityManager.NetworkCallback mNetworkCallback;

Then with that name a new ConnectivityManager.NetworkCallback()

  mNetworkCallback = new ConnectivityManager.NetworkCallback() 
    {
     @Override
        public void onAvailable(Network network) {
    //   Log.e(TAG, "The default network is now: " + network);
        }
       ....
});

Then I unregister with a function.

public void Unregdefault() {
      try {
        cm.unregisterNetworkCallback (mNetworkCallback);    
      } catch (Exception exception) {
       // onError("could not unregister network callback", exception);
 }
      }