android 网络监听
时间: 2024-09-27 10:00:41 浏览: 39
在Android中,网络监听主要是通过`ConnectivityManager`和相关的广播接收器(BroadcastReceiver)来实现的。`ConnectivityManager`是一个系统服务,允许应用程序检查网络连接状态、获取网络信息等。以下是基本步骤:
1. **注册广播接收器**:
首先,创建一个实现了`BroadcastReceiver`的类,并在`onReceive()`方法中处理网络变化的意图(Intent),如`ACTION_CONNECTION_CHANGE`。
```java
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
// 检查网络连接
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = connManager.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
// 执行网络已连接的操作
} else {
// 执行网络未连接的操作
}
}
}
}
```
2. **注册监听**:
在应用需要监控网络变更的地方,调用`registerReceiver()`来注册广播接收器:
```java
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
receiver = new NetworkChangeReceiver();
context.registerReceiver(receiver, filter);
```
3. **取消监听**:
当不再需要网络监听时,记得调用`unregisterReceiver()`来解除注册:
```java
context.unregisterReceiver(receiver);
```
阅读全文