广播机制

android的广播分三种:
1、常规广播:所有匹配的接收器都会接收到此广播。                              

      发送方式:sendBroadcast(intent)
2、粘性广播:可以在接受到注册之前发出的广播。最常见的例子就是WIFI。          

     发送方式:sendStickyBroadcast(intent)
3、有序广播:根据广播接收器的意图过滤器的priority属性值的大小一次调用,并可以通过调用abortBroadcast()阻止广播继续向下传播。
发送方式:sendOrderedBroadcast(intent,"permission").这里短信的广播机制就是有序广播,因此可以在接收到广播之后做点儿什么,加黑或者转发什么的。

 

 

<!-- 接收短信 (短信广播属于有序广播)-->
<receiver android:name=".SmsgBroadcastReceiver">
<!-- android:priority="1000" 将这个接收器的优先级别声明到最大,接收到广播之后可以对广播序列进行操作 -->
<intent-filter android:priority="1000">
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
</receiver>
    </application>

还需要接受短信的权限

 

 

 

然而有序广播是按照接收者声明的优先级别,被接收者依次接收广播。如:A的级别高于B,B的级别高于C,那么,广播先传给A,再传给B,最后传给C 。优先级别声明在 intent-filter 元素的 android:priority 属性中,数越大优先级别越高,取值范围:-1000到1000,优先级别也可以调用IntentFilter对象的setPriority()进行设置 。有序广播的接收者可以终止广播Intent的传播,广播Intent的传播一旦终止,后面的接收者就无法接收到广播。

  另外,有序广播的接收者可以将数据传递给下一个接收者,如:A得到广播后,可以往它的结果对象中存入数据,当广播传给B时,B可以从A的结果对象中得到A存入的数据。

  Context.sendBroadcast()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值