broadcastreceiver广播

添加链接描述广播本质上就是一个全局的监听器
广播有静态跟动态两种
动态注册是在Java类中注册,而静态注册是在AndroidManifest.xml中注册。
动态广播会随着所注册的Activity的消失而跟着消失,而静态广播即使APP被关闭了,也是可以接收到广播的。

  • 主要需要学习的单词
单词中文
broadcast广播
receiver接受者
register登记;注册
unregister移除注册;注销;取消注册;
Destroy破坏;杀死;消灭;摧毁
  • 自定义广播接收者
 public class Mybroadcast2 extends BroadcastReceiver{

		@Override
		public void onReceive(Context arg0, Intent arg1) {
			// TODO Auto-generated method stub
			int i1=arg1.getIntExtra("i", 0);//接收传来的数据,传来的是什么类型就定义什么类型。
		    Toast.makeText(arg0, "发送成功"+i1, Toast.LENGTH_LONG).show();
		}
    }

1.新建一个类,继承自BroadcastReceiver,并重写onReceive()方法并在里面接收消息

  • 静态注册
 <receiver android:name="com.example.a1.Mybroadcast">
            <intent-filter >
                <action android:name="aaa"/>
            </intent-filter>
 </receiver>
  • 发送广播
Intent i=new Intent("aaa");
int i2=1;//用于测试的值.
i.putExtra("i", i2);//把需要传输的数据导入进去,然后在接收器那边接收。
sendBroadcast(i);//发送广播

把i发送出去,当与注册中action相同是,即广播发送成功

  • 动态注册
    1.跟静态广播一样,先注册一个继承自BroadcastReceiver的新类。不需要注册。不过要把把广播接收者的对象实例化出来
Mybroadcast2 mybroad;  //把广播接收者的对象实例化出来
mybroad=new Mybroadcast2(); //把广播接收者的对象实例化出来
        IntentFilter filter=new IntentFilter("bbb");
        //以代码方式注册广播
        registerReceiver(mybroad, filter);
  • 取消广播
  protected void onDestroy(){
    	//取消注册广播接收者无法接收到广播
    	unregisterReceiver(mybroad);
    	super.onDestroy();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值