动态注册广播接收器

本文详细介绍了如何在Android应用中实现网络状态变化的监听,包括创建广播接收器、注册和取消注册广播接收器,以及在接收到网络状态变化时进行相应操作。
  1. public class MainActivity extends Activity {
  2. private IntentFilter intentF;
  3. private NetworkChangeReceiver networkCR;


  4. @Override
  5. protected void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.activity_main);
  8. intentF = new IntentFilter();
  9. //广播接收器想要监听什么广播就添加什么样的action
  10. //android.net.conn.CONNECTIVITY_CHANGE是网络状态发生变化时系统发出的值
  11. intentF.addAction("android.net.conn.CONNECTIVITY_CHANGE");
  12. networkCR = new NetworkChangeReceiver();
  13. //使用registerReceiver()方法注册,传入两个实例,这样NetworkChangeReceiver就会收到
  14. //所有值为android.net.conn.CONNECTIVITY_CHANGE的广播,也就实现了网络变化的监听
  15. registerReceiver(networkCR,intentF);
  16. }


  17. //动态注册的广播接收器不要忘记取消注册哦
  18. @Override
  19. protected void onDestroy() {
  20. // TODO Auto-generated method stub
  21. super.onDestroy();
  22. unregisterReceiver(networkCR);
  23. }
  24. //定义一个继承自BroadcastReceiver的内部类,重写onReceive()方法
  25. //当网络发生变化时onReceive()方法就会被执行
  26. class NetworkChangeReceiver extends BroadcastReceiver{


  27. @Override
  28. public void onReceive(Context arg0, Intent arg1) {
  29. // TODO Auto-generated method stub
  30. Toast.makeText(arg0, "网络发生变化", Toast.LENGTH_SHORT).show();
  31. }
  32. }


  33. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值