`
xitongyunwei
  • 浏览: 925166 次
文章分类
社区版块
存档分类
最新评论

android 四大组件之 broadcastreceiver

 
阅读更多

广播接受者,首先我们看下我们平时使用的手机,哪些有用到广播接受者呢:

1:来电的时候,我们如果安装了触宝等软件的时候,它会有一个归属地框的提示,这就是一个广播接受者,它同时接收到了我们的电话,并判断了归属地,显示到了界面上。

2:当手机快没电的时候,我们也会收到提醒,手机电量还剩xxx,等等等等,都是广播接受者。


那我们来学习下这个功能强大滴东东吧。


广播接受者分类:

广播接受者有两类

1:无序广播 顾名思义,这种广播可以想象成一个人在说话,一群人在听,很难说清是谁先听到的,所以我们说它是无序的,其实说是说无序的,它其实是有序的,是按照应用程序的安装的先后有顺序,先安装的先收到,后安装的后收到

2:有序广播 有序广播就是有顺序的广播了,我们可以手动的去设置广播接收者的优先级,控制应用在什么时候去收到广播。


知道了这两个概念以后,我们再稍微深入一点去理解这两个东西了:

无序广播:因为不能确定谁到底是先收到,谁是后收到,所以,虽然我们可以接受广播,进行一些自己的处理,但是我们不能将处理的结果发给下一个接受者,也不能去终止这个广播。

有序广播: 有序的广播由于是有序的,它的机制是先收到广播的对广播进行处理,然后将自己处理过的广播发送给下一位接受者,并且也有权对这个广播接收者进行终止操作,这样下一个接收者就收不到这个广播了,黑名单拦截就是用的这个啦


接下来就是去实践一下啦,首先我们注册一个接收无序广播的例子了:

首先写一个类,继承BroadCastReceiver

然后里面有我们重写一些onReceive这个方法:

syso一个东东吧,随意啦,只要你知道是执行到这里的,添加啥都无所谓了 在传进来的那个intent 可以获取里面的那些参数了。


接下来是注册这个广播接受者:

在AndroidManifest.xml里面注册一下啦:

<receiver android:name=".BootReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>

这里是来电的监听了,完事儿后给那个模拟器打个电话吧,看看效果哦


接下来注册一个有序广播了:

有序广播就不展开的这么详细了,就是注册的时候稍微注意指定下它的优先级了,并且在接收到广播以后可以对它进行一些操作,然后最好再注册一个优先级稍微低一点的广播接受者,这样的话就能详细的看到结果了


祝君顺利:有疑问可留言,乐意为您效劳




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics