要监听 Android 设备的网络连接状态,可以使用网络状态广播。下面是一个示例代码,用于注册网络状态广播并监听网络连接状态的变化:

  1. 创建一个 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');
        }
    }
}
  1. 在 AndroidManifest.xml 文件中声明网络状态广播接收器:
<receiver android:name=".NetworkChangeReceiver">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>
  1. 在你的 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 方法中处理网络连接状态的变化。当网络连接成功时,你可以执行相应的操作,例如显示网络连接成功的提示;当网络连接断开时,你可以执行相应的操作,例如显示网络连接断开的提示。

Android 网络状态监听:使用广播接收器检测网络连接变化

原文地址: https://www.cveoy.top/t/topic/qhnD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录