简介:
Android的每个应用程序可以对自己感兴趣的广播进行注册,广播内容可以来自系统,也可来自其他应用程序。android提供了一套完整的API,允许应用程序自由的发送和接受广播。
广播发送通过Intent,广播接收则需通过广播接收器(Broadcast Receiver)。
Android广播主要分两种类型:标准广播和有序广播。
标准广播:完全异步执行的广播,广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言。这种广播效率高,但是无法被截断。
有序广播:同步执行的广播,在广播发出之后,同一时刻只有一个广播接收器接收到这条广播消息,只有当这个广播接收器的逻辑执行完毕之后才会传递。所以此时的广播接收是有先后顺序的,优先级高的广播可以先收到广播消息,并且广播接收器还可以截断正在传递的广播,这样后面的广播接收器无法收到广播消息。
(思考:如何设置广播的优先级以及截断广播)
android内置了很多系统级别的广播,我们可以在应用程序中监听这些广播来得到各种系统的状态信息。
注册广播的方式一般有两种:在代码中注册以及在AndroidManifest.xml中注册,前者被称为动态注册,后者则被称为静态注册。
如何创建广播接收器:新建一个类,让此类继承自Broadcast-Recevier,并重写父类的OnReceive方法。具体的逻辑可以在此方法实现。