Android 网络状态监听:实时更新 Activity 和 Fragment UI
以下是一个示例代码,用于监听网络状态变化并在Activity或Fragment中更新UI:\n\n1. 在AndroidManifest.xml文件中添加以下权限:\n\nxml\n<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />\n\n\n2. 创建一个BroadcastReceiver类,用于接收网络状态变化的广播:\n\njava\npublic class NetworkChangeReceiver extends BroadcastReceiver {\n @Override\n public void onReceive(Context context, Intent intent) {\n ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);\n NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();\n\n if (networkInfo != null && networkInfo.isConnected()) {\n // 网络已连接\n // 在这里执行更新UI的操作,例如更新Activity或Fragment中的TextView内容\n } else {\n // 网络未连接\n // 在这里执行更新UI的操作,例如更新Activity或Fragment中的TextView内容\n }\n }\n}\n\n\n3. 在需要监听网络状态变化的Activity或Fragment中注册广播接收器,并在onResume()和onPause()方法中分别进行注册和注销操作:\n\njava\npublic class MainActivity extends AppCompatActivity {\n private NetworkChangeReceiver receiver;\n\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_main);\n\n // 注册广播接收器\n receiver = new NetworkChangeReceiver();\n }\n\n @Override\n protected void onResume() {\n super.onResume();\n\n // 注册广播接收器\n IntentFilter intentFilter = new IntentFilter();\n intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);\n registerReceiver(receiver, intentFilter);\n }\n\n @Override\n protected void onPause() {\n super.onPause();\n\n // 注销广播接收器\n unregisterReceiver(receiver);\n }\n}\n\n\n这样,当网络状态发生变化时,广播接收器会接收到相应的广播,并在onReceive()方法中执行更新UI的操作。你可以根据自己的需求,在相应的位置添加更新UI的代码。
原文地址: https://www.cveoy.top/t/topic/qevU 著作权归作者所有。请勿转载和采集!