Broadcase
运用在应用程序之间传输信息的机制。
- 无序/标准广播:完全异步执行的广播,调用sendBroadcast()方法来发送广播,不可被拦截,若被拦截就报错。
在广播发出之后,所有广播接收者几乎都会在同一时间接收到该广播。
广播接收者之间不能互相传递数据。 - 有序广播:同步执行的广播,通过调用sendOrderedBroadcast()方法来发送广播,也可以调用abortBroadcast()方法来拦截该广播。可以在清单文件中,通过< intent-filter >标签设置“android:property”属性来设置优先级。
在广播发出之后,此刻只有一个优先级最高的广播接收器能够接收,当该广播接收器中的逻辑执行完后,广播才会继续传递给下一个优先级高的。前面的广播接收器还可以拦截正在传递的广播,拦截之后,后面的广播接收器就无法收到该广播了。
广播接收者之间可以互相传递数据。
注册方式
1.静态注册:在清单文件中注册< receiver >组件,在系统中运行一次后就会被注册到系统中,以后无须运行该应用程序也可以接收广播。
2.动态注册:在代码中通过调用Context的registerReceiver()方法即可。只有在代码运行时,广播接收者才生效,否则失效。