Android四大基本组件之一 ,广播(broadcast receiver)---有序广播

                     上次,我们讲完了广播里的动态广播,这次我们来讲讲静态广播和有序广播。


                     静态广播和动态广播的区别有三点:

                   1、静态广播的生存期可以比动态广播的长很多,因为静态广播很多都是用来对系统时间进行监听,比如我们可以监听手机开机。

而动态广播会随着context的终止而终止

               2、动态广播的优先级比静态广播高

             3、动态广播无需在AndroidManifest.xml中声明即可直接使用,也即动态;而静态广播则需要,有时候还要在AndroidManifest.xml中加上一些权限的声明

             

             有序广播的话我们可以根据上次电台的例子写一个短信发送的例子,大概依照上次的代码,我们只需要稍微做一点点的改动即可,

             首先,发送者里面,我们只需将sendBroadcast(intent);改为sendOrderedBroadcast(intent,null);就可以将无序广播变为有序广播了,然后,我们来接着写接收者一号里面的内容,在这里,我们可以在接受者一号的activity里面更改短信内容,也可以对短信内容做一个判断,如果内容为中奖了三个字,则做出拦截,这也是有序广播里面的一个知识点-----通过abortBroadcast可终止广播的传播,接下来,给大家看看我接受者一号里面的代码:

            

public class MyReceived01 extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        if ("com.zking.android_13_sender.955".equals(intent.getAction())){
            String data=intent.getStringExtra("data");
            Log.i("test","01号广播接受者收到广播了"+data);

            //一号收到之后,将二号的内容作为更改
            Bundle bundle=new Bundle();
            bundle.putString("content",data+"吗?骗你的");
            setResultExtras(bundle);

//            if ("中奖了".equals(data)){
//                //阻止短信(拦截)
//                abortBroadcast();
//            }
        }
    }
}
               然后在manifests里面对上面那个activity做一个配置,代码就完成了,针对于我们有两个接收者,所以我们可以给他们设置一个优先级,这也是有序广播的特点之一,设置优先级只需在<intent-filter>节点中添加 android:priority属性,取值为-1000~1000

               

<receiver android:name=".MyReceived01">
        <intent-filter
            android:priority="999"
            >
            <action android:name="com.zking.android_13_sender.955"></action>
        </intent-filter>
    </receiver>

               在接收者二号里面就只需要接收信息,不需要做任何更改即可

               

              

             

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值