当前位置:   article > 正文

Android的广播的两种注册方式_android 注册广播

android 注册广播

整体概述

  1. 广播是在程序之间的,一般会由系统发起:比如电量不足
  2. 消息到达后,BroadCastReceiver调用onReceive方法来实现广播的事件

两种方法来发送广播

  1. context.sendBroadcast(intent)通常会伴随数据的传递intent.putExtra()
  2. context.sendOrderBroadCast(intent)这个在intent-filter中设置优先级android:priority

两种注册方式

静态注册

在Androidmanifest.xml中注册

  1. 定义一个myReceiver extends BroadCastReceiver 实现onReceive()方法
  2. 在Androidmanifest中注册广播接收器
<receiver android:name=".MyReceiver">
            <intent-filter>
                	<action android:name="com.example.broadcast" />
            </intent-filter>
</receiver>
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 在主activity中设置事件监听:
    其内容为
    设置一个intent,intent设置广播跳转(显式隐式),
    sendBroadCast(intent) 实现跳转
  2. 广播接受器中的onReceive()方法设置响应事件

动态注册

创建一个BroadCasteReceiver的子类的实例化对象

  1. 创建子类,定义一个myReceiver extends BroadCastReceiver 实现onReceive()方法
  2. 动态注册接收器
//1.创建一个对象
final MyReceiver myReceiver2 = new MyReceiver();
//2.设置button入口,设置事件监听
		Button btn_register = findViewById(R.id.register_broadcast);
        btn_register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            //添加一个Intentfilter对象,添加action属性
                IntentFilter filter = new IntentFilter();
                filter.addAction("MyReceiver2");
                //将intentfilter与创建的子类对象关联起来
                registerReceiver(myReceiver2,filter);
            }
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  1. 取消注册接收器
		Button btn_unregister = findViewById(R.id.unregister_broadcast);
        btn_unregister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                unregisterReceiver(myReceiver2);
            }
        });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/630756
推荐阅读
相关标签
  

闽ICP备14008679号