使用以下代码: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);
}
}