Android 网络状态监听:使用广播接收器检测网络连接变化
要监听 Android 设备的网络连接状态,可以使用网络状态广播。下面是一个示例代码,用于注册网络状态广播并监听网络连接状态的变化:
- 创建一个 BroadcastReceiver 类来接收网络状态变化的广播:
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
// 网络连接成功
Log.d('NetworkChangeReceiver', 'Network connected');
} else {
// 网络连接断开
Log.d('NetworkChangeReceiver', 'Network disconnected');
}
}
}
- 在 AndroidManifest.xml 文件中声明网络状态广播接收器:
<receiver android:name=".NetworkChangeReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
- 在你的 Activity 中注册网络状态广播接收器:
public class MainActivity extends AppCompatActivity {
private NetworkChangeReceiver networkChangeReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 注册网络状态广播接收器
networkChangeReceiver = new NetworkChangeReceiver();
IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(networkChangeReceiver, intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 取消注册网络状态广播接收器
unregisterReceiver(networkChangeReceiver);
}
}
现在,你可以在 NetworkChangeReceiver 类的 onReceive 方法中处理网络连接状态的变化。当网络连接成功时,你可以执行相应的操作,例如显示网络连接成功的提示;当网络连接断开时,你可以执行相应的操作,例如显示网络连接断开的提示。
原文地址: https://www.cveoy.top/t/topic/qhnD 著作权归作者所有。请勿转载和采集!