广播
广播作为Android组建间的通信方式,分为广播发送者和广播接受者,BroadcastReceiver是广播接受者。广播使用了观察者模式,基于消息的发布/订阅事件模型。将发送者和接受者极大程度上解耦,是系统集成更方便,扩展更容易。
广播的执行流程:
1.BroadcastReceiver注册;
2.广播发送者发送广播;
3.系统查找符合相应条件的BroadcastReceiver,将广播发送到BroadcastReceiver响应循环队列中;
4.消息循环拿到此广播,回调BroadcastReceiver中的onReceive()方法。
应用场景:
组件内部方法、类之间的消息传递
组建之间的消息传递
应用之间的消息传递
无序广播:
效率高,所有接收者都能收到,接受消息的先后顺序不确定。
有序广播:
接受广播者有先后次序,先后次序通过设置优先级来区别
实现有序广播:
1.在项目清单文件中设置优先级
<intent-filter android:priority="200">
2.发送有序广播
Context.sendOrderedBroadcast(intent)
特点:
优先级高的接收器先接受
相同优先级,动态注册的接收器先接受
相同优先级的静态注册的接收器,先注册的先接受
注册广播:
项目清单中注册:
常驻型,进程被回收后,仍可以接受广播。
代码注册:
生命周期随所在组件。
BroadcastReceiver常用方法:
发送广播的相关方法:
IntentFilter:
IntenFilter类用于代码注册广播接受者,该类的作用相当于项目清单文件中的<intent-filter>。
常用方法:
通知
通知是系统级的服务,通知的消息显示在状态栏,是一种全局效果的消息。
使用通知:
应用场景:
1.显示接收到短消息。即使消息等信息(如QQ、微信、短信、新浪);
2.显示客户端的推送消息(如新版本发布、广告、推荐新闻等);
3.显示正在进行的事物(如后台运行的程序、更新下载等);
PendingIntent:
用于描述Intent及其最终行为。PendingIntent对象可以递交给其它应用程序,然后继续处理,这样可稍后才处理PendingIntent中描述的Intent及其最终行为。
常用方法:
Notification的常用属性:
以上就是关于广播和通知的一些理论上的简单介绍。