- Android中的广播主要可以分为两种类型:标准广播和有序广播
标准广播(异步执行)效率高,无序,但是无法被截断
有序广播(同步执行)广播会有先后顺序,优先级高的会先收到广播,可以截断广播
- 在代码中注册和在AndroidManifest.xml中注册。其中前者也被称为动态注册,后者也被称为静态注册。
- 在Android 8.0系统之后,所有隐式广播都不允许使用静态注册的方式来接收了。隐式广播指的是那些没有具体指定发送给哪个应用程序的广播,大多数系统广播属于隐式广广播
- 不要在onReceive()方法中添加过多的逻辑或者进行任何的耗时操作,因为BroadcastReceiver中是不允许开启线程的,当onReceive()方法运行了较长时间而没有结束时,程序就会出现错误
- android8.0以后的发送广播,需要添加setPackage()方法。方法传入自身的包名(getPackageName()),这是因为发出的广播不能是隐式广播
- sendBroadcast()发送标准广播,sendOrderBroadcast()发送有序广播
- 在Broadcast的onReceive中调用abortBroadcast()方法可以截断广播,使后面的BroadcastReceiver接收不到
- 书签6.5