一、Broadcast(广播)
根据来源分类:
1.进程内广播:实现应用内部Activity之间,Activity和Service之间的通信。
2.进程间广播 :实现不同应用之间的通信。
3.系统广播:实现系统和应用之间的通信。系统启动完成、网络状态改变、电量变化等系统状态改变都要发送广播,相关应用可以接收、处理这些信息。
根据传播方式分类:
1.普通广播:对应的BoradcastReciever不需要设置优先级,多个Reciever可以互不影响的接收、处理同一个广播。
2.有序广播:对应的BoradcastReciever要设置优先级,优先级高的先接收、处理广播,然后可以继续传给下一级的Reciever,也可以终止广播的继续传播。
二、BroadcastReciever(广播接收器)
要让系统知道应用可以接收哪些广播,要对BroadcastReciever进行注册
1.静态注册:在AndroidManifest文件中注册BroadcastReciever。不需要应用启动,就可以在广播传来时自动启动应用,接收、处理广播。
2.动态注册:在项目中使用代码注册BroadcastReciever。需要应用启动,运行注册代码,才可以接收、处理广播;应用退出时,要解除注册,否则会报异常。
三、短信助手的实现
收到短信、发送短信成功、发送短信失败、对方收到短信,系统都会发出广播。
收到短信,系统发出一个有序广播,短信助手可以注册一个优先级最高的BroadcastReciever,第一个接收这个广播。如果判断为垃圾短信,可以立即删除短信并终止广播;如果不是,继续向下传播。