Android 通过NetworkCallback监听WiFi和移动数据的切换
时间: 2024-05-04 11:20:56 浏览: 237
在 Android 中,你可以通过注册 NetworkCallback 来监听网络连接状态的变化,包括 WiFi 和移动数据的切换。具体步骤如下:
1. 在你的 Activity 或者 Fragment 中,定义一个 NetworkCallback 对象。
```
private ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
super.onAvailable(network);
// 当网络连接可用时会回调该方法
// 在这里可以执行相关操作,比如获取网络信息
}
@Override
public void onLost(Network network) {
super.onLost(network);
// 当网络连接丢失时会回调该方法
// 在这里可以执行相关操作,比如提示用户网络已断开
}
};
```
2. 在你的 Activity 或者 Fragment 中,获取 ConnectivityManager 对象,并注册 NetworkCallback。
```
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
connectivityManager.registerDefaultNetworkCallback(networkCallback);
```
在注册 NetworkCallback 后,当网络连接状态发生变化时,会自动回调相应的方法。你可以在 onAvailable 和 onLost 方法内部执行你想要执行的操作,比如更新 UI 界面、发送广播等。
需要注意的是,当你的应用退出时,一定要记得取消 NetworkCallback 的注册,否则会导致内存泄漏。
```
connectivityManager.unregisterNetworkCallback(networkCallback);
```
阅读全文