如何注销registerDefaultNetworkCallback(new Connectivity Manager.



使用以下代码:https://developer.android.com/training/basics/network-ops/reading-network-state我注册了一个DefaultNetworkCallback:

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

如何从函数中注销DefaultNetworkCallback?我试过了:

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

但我不知道该放什么参数。

我已经创建了一个代码,可以满足我的需要。

我创建了一个变量:

private ConnectivityManager.NetworkCallback mNetworkCallback;

然后用这个名称创建一个新的ConnectivityManager.NetworkCallback((

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

然后我用一个函数注销。

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

最新更新