安卓 broadcast简介理解

Broadcast 直译 称为广播,通俗理解就是有人在播送广播,自然就有人接收广播。有了这个基础了解之后就容易了。

注册广播的类型:静态注册动态注册

1、在AndroidManifest中的Application的节点中加入<receiver>,在receiver节点中加入action,在java层继承BroadcastReceiver即可

        <receiver android:name=".broadcast.MyBroadcast" android:enabled="true" android:exported="true">
            <intent-filter>
<!--                <action android:name="broadcast.MyBroadcast"></action>-->
                <action android:name="android.intent.action.TIME_TICK"></action>
            </intent-filter>
        </receiver>

目前随着安卓版本的升级,安卓系统几乎对每个版本都在削弱对静态注册BroadcastReceiver功能

2、动态注册

 IntentFilter intentFilter=new IntentFilter(Intent.ACTION_TIME_TICK);
                registerReceiver(myBroadcast,intentFilter);
                break;
public class MyBroadcast extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String data="没有值";
        String data1=intent.getStringExtra("data");
        if (null!=intent.getStringExtra("data")){
            data=data1;
        }
        Toast.makeText(context,data,Toast.LENGTH_SHORT).show();
    }
}

二、广播类型

广播类型分为:标准广播,有序广播
标准广播:同一时间发送给所有接收者
有序广播:广播发送给   A-B-C-D

其中有序广播是可以被拦截 abortBroadcast,并且可以设置优先级别  priority

case R.id.btn_normarl:
                intent=new Intent("broadcast.MyBroadcast");
                intent.setPackage(getPackageName());
                intent.putExtra("data","标准广播:我爱我老婆");
                sendBroadcast(intent);
                break;
            case R.id.btn_order:
                intent=new Intent("broadcast.MyBroadcast");
                intent.setPackage(getPackageName());
                intent.putExtra("data","有序广播:我爱我老婆");
                sendOrderedBroadcast(intent,null);
                break;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值