- public class MainActivity extends Activity {
- private IntentFilter intentF;
- private NetworkChangeReceiver networkCR;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- intentF = new IntentFilter();
- //广播接收器想要监听什么广播就添加什么样的action
- //android.net.conn.CONNECTIVITY_CHANGE是网络状态发生变化时系统发出的值
- intentF.addAction("android.net.conn.CONNECTIVITY_CHANGE");
- networkCR = new NetworkChangeReceiver();
- //使用registerReceiver()方法注册,传入两个实例,这样NetworkChangeReceiver就会收到
- //所有值为android.net.conn.CONNECTIVITY_CHANGE的广播,也就实现了网络变化的监听
- registerReceiver(networkCR,intentF);
- }
- //动态注册的广播接收器不要忘记取消注册哦
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- unregisterReceiver(networkCR);
- }
- //定义一个继承自BroadcastReceiver的内部类,重写onReceive()方法
- //当网络发生变化时onReceive()方法就会被执行
- class NetworkChangeReceiver extends BroadcastReceiver{
- @Override
- public void onReceive(Context arg0, Intent arg1) {
- // TODO Auto-generated method stub
- Toast.makeText(arg0, "网络发生变化", Toast.LENGTH_SHORT).show();
- }
- }
- }
动态注册广播接收器
最新推荐文章于 2025-01-20 14:14:33 发布
本文详细介绍了如何在Android应用中实现网络状态变化的监听,包括创建广播接收器、注册和取消注册广播接收器,以及在接收到网络状态变化时进行相应操作。

3162

被折叠的 条评论
为什么被折叠?



