在 Android 中,onConfigurationChange
是一个用于处理设备配置更改(如屏幕方向、键盘可用性等)的方法。然而,这个方法并不会直接处理网络变化。要处理网络变化,你需要使用 ConnectivityManager
类。
以下是如何在 Android 应用中处理网络变化的步骤:
- 首先,确保在你的 AndroidManifest.xml 文件中添加了以下权限:
- 创建一个名为
NetworkChangeReceiver
的类,该类需要继承自BroadcastReceiver
:
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; public class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isConnected = activeNetworkInfo != null && activeNetworkInfo.isConnected(); if (isConnected) { // 网络已连接,可以执行相关操作 } else { // 网络未连接,可以执行相关操作 } } }
- 在你的 AndroidManifest.xml 文件中注册
NetworkChangeReceiver
:
现在,每当网络状态发生变化时,NetworkChangeReceiver
的 onReceive
方法都会被调用,你可以在其中执行相应的操作。请注意,从 Android 7.0(API 级别 24)开始,CONNECTIVITY_CHANGE
广播的行为发生了变化,它不再在每次网络状态变化时触发。为了解决这个问题,你可以使用 ConnectivityManager.registerNetworkCallback()
方法来监听网络变化。