您的位置:首页 > 移动开发 > Android开发

学习Android中广播的总结

2017-02-07 21:52 190 查看
(一)BroadcastReceiver创建
创建自己的BroadcastReceiver对象,我们需要继承BroadcastReceiver类,并实现其onReceive 方法。在onReceive方法内,我们可以获取随广播而来的Intent中的数据。在创建完我们的BroadcastReceiver之后,还不能够使它进入工作状态,因为我们需要为它注册一个指定的广播地址。所以创建类后就要对BroadcastReceiver进行注册。



(二)BroadcastReceiver注册
1.静态注册

静态注册是在清单(AndroidManifest.xml)文件中配置的



2.动态注册

       动态注册需要在代码中动态的指定广播名字并注册

       注意,registerReceiver是android.content.ContextWrapper类中的方法,Activity 和Service都继承了ContextWrapper,所以可以直接调用。 在实际应用中,我们在 Activity或Service中注册了一个BroadcastReceiver,当这个Activity或Service被销毁时 如果没有解除注册,系统会报一个异常,提示我们是否忘记解除注册了。所以,记得在 特定的地方执行解除注册操作。



 通过上面两步其实已经完成了一个简单功能的广播接收者,已经可以具有接受广播功能了。在onReceive方法里面就可以做自己想要的处理。

       但是上面的BroadcastReceiver注册时的action动作意图值是自己定义的字符串,需要自己发送对应意图的广播才能让上面的广播接收到消息,如果是上面使用系统定义好的动作意图action,那么,就可以接收到系统发过来的广播信息,比如手机接收到短信,手机底层是会发送一条广播,查看手机系统内是否有符合条件的广播接收者,如果有就会向它发送信息。。。

       静态注册的广播的程序运行一次后,以后能一直保持广播接收的状态,只要有对应的广播就能接收它的广播信息。而动态注册的广播需要程序在运行中才能接收广播。

(三)发送广播

普通广播对于多个接收者来说是完全异步的,通常每个接收者都无需等待即可以接收到广播,接收者相互之间不会有影响。对于这种广播,接收者无法终止广播,即无法阻止其他接收者的 接收动作。



完整代码附上









以上是本人对在网上学到Android广播的总结 欢迎大家补充
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: