广播的分类:标准广播和有序广播
- 标准广播:一个发送,全村接收
- 有序广播:一个发送,挨家传递(可被截断abortBroadcast())
注册方式:动态注册和静态注册
动态注册(灵活,但需要程序启动才能收到广播):
1.新建IntentFilter类,通过addAction添加action的值
2.新建MyBroadcastRecriver类继承BroadcastReceiver,并重写onReceive()方法
3.调用registerReceiver(MyBroadcastRecriver,IntentFilter)动态注册
4.记得在OnDestroy中取消注册unregisterReceiver()静态注册(不灵活,但是可以不启动程序就收到广播)
1.新建MyBroadcastRecriver类继承BroadcastReceiver,并重写onReceive()方法
2.在manifest文件中application节点下注册
发送广播
发送标准广播
- 利用intent.addAction()加入发送的广播值(也可以携带数据哦)
- sendBroadcast(intent);
- 动态或静态注册
发送有序广播
- 利用intent.addAction()加入发送的广播值(也可以携带数据哦)
- sendOrderedBroadcast(intent);
- 动态或静态注册
发送本地广播
之前的广播属于系统全局广播,发出去后所有程序都能接收到,安全性有待提升,故而本地广播只能在本应用程序内广播,也只有本程序才能接收
- LocalBroadcastmanger.getInstance(this)获取LocalBroadcastmanger对象
- 利用intent.addAction()加入发送的广播值(也可以携带数据哦)
- localBroadcastmanger.sendBroadcast(intent);
- 动态或静态注册