android中的广播Broadcast

a、简介
    1、广播接收器 BroadcastReceiver
    2、广播发送 sendBroadcast
   b、用法
    1、静态注册广播接收器

  <receiver android:name=".customreceiver.CustomBroadcastReceiver">
            <intent-filter>
                <action android:name="z.intent.action.SHOW_SOME_TEXT" />
            </intent-filter>
        </receiver>

2、动态注册广播接收器

 NetWorkReceiver netWorkReceiver = new NetWorkReceiver();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        registerReceiver(netWorkReceiver, intentFilter);

   d、
    d.1、有序广播
     该类型的广播,一旦发送,
     所有注册的能够接收该广播的接收器
     按照优先级进行顺序接收,优先级高的接收器
     优先接收,然后经过一系列处理,再传递给优先级低的
     接收器。当然,也可以不继续向下传递,直接abort。
     1、优先级高的先接收,如果优先级一样则先注册的会先接收;
     2、优先级高的已经接收处理消息的接收器可以继续向下传递
     该广播,也可以阻断继续传递。 abortBroadcast();
     3、优先级高的接收器处理的广播,可以追加消息,然后再继续传递。
     (PS:Intent传递时,每次回调方法中的Intent均为新的对象,
     那么向原先的Intent中追加bundle是无法追加成功的。
     只能使用:setResultExtras(bundle))。
     
    d.2、无序广播
     该类型的广播一旦发送,
     那么所有注册的能够接收该广播的接收器
     均能平等的收到该广播消息。


   e、广播接收器接收权限
    (PS:以下的权限操作需要在Application标签外部)
    a、自定义权限
     1、通过<permission>此标签用来声明新的权限。
     2、通过<uses-permission>此标签来申请新的权限。

广播的发送:

  //下面两行操作,只能确保已经可以让广播接收器拦截该条广播信息
        Intent intent = new Intent();
        intent.setAction(ReceiveraActivionConstants.ACTION_RECEIVER_SHOW_SOME_TEXT);
        //下面若干行代表发送的广播需要携带的信息
        Bundle bundle = new Bundle();
        bundle.putString("MSG", "这是一条广播信息");
        intent.putExtras(bundle);
        //准备就绪,可以发送一条广播了
        sendBroadcast(intent, "z.permission.HAHAHA");

广播的接收:

public class CustomBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        String msg = bundle.getString("MSG");
        Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
    }
}




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值