主要用于个人复习(基于第一行代码)
广播的类型
标准广播:一种完全异步执行的广播,在广播发出之后,所有的BroadcastReceiver几乎会在同一时刻收到这条广播消息,因此他们没有任何先后顺序而言,效率高,但无法被截断
有序广播:一种同步执行的广播,在广播发出之后,同一时刻只会有BroadcastReceiver能够接受这条广播消息,当这个BroadcastReceiver种的逻辑执行完毕后,广播才会继续传递,此时的BroadcastReceiver是有先后顺序的,优先级高的BroadcastReceiver就可以先收到广播消息,并前面的BroadcastReceiver还可以截断正在传递的广播
接受系统广播
动态注册:动态注册的BroadcastReceiver可以自由地控制注册与注销,但必须在启动程序之后才能接受广播
新建一个BroadcastTest项目
registerReceiver()方法进行注册,将TimeChangeReceiver的实例和IntentFilter的实例都传进去
注意:动态注册的BroadcastReceiver一定要取消注册,这里再onDestory()方法中调用unregisterReceiver()方法来实现
静态注册
静态的广播接收器一定要在AndroidManifest.xml注册
android:name:具体注册哪一个BroadcastReceiver
必须在配置文件中进行权限声明,否则程序将会直接崩溃
不要在onReceive()方法中添加过多的逻辑或者任何的耗时操作,因为BroadcastReceiver中不允许开线程,当onReceive()方法运行了较长时间而没有结束时,程序就会出现错误
发送有序广播
新建AnotherBroadcastReceiver
修改MainActivity
截断设置:在配置文件中设置优先级
使用本地广播
MainActivity中:
网友评论