阅读更多

广播:在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。我们拿广播电台来做个比方。我们平常使用收音机收音是这样的:许许多多不同的广播电台通过特定的频率来发送他们的内容,而我们用户只需要将频率调成和广播电台的一样就可以收听他们的内容了。Android中的广播机制就和这个差不多的道理,Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。

从实现原理看上,Android中的广播使用了观察者模式,基于消息的发布/订阅事件模型。因此,从实现的角度来看,Android中的广播将广播的发送者和接受者极大程度上解耦,使得系统能够方便集成,更易扩展。具体实现流程要点粗略概括如下:

1.广播接收者BroadcastReceiver通过Binder机制向AMS(Activity Manager Service)进行注册;

2.广播发送者通过binder机制向AMS发送广播;

3.AMS查找符合相应条件(IntentFilter/Permission等)的BroadcastReceiver,将广播发送到BroadcastReceiver(一般情况下是Activity)相应的消息循环队列中;

4.消息循环执行拿到此广播,回调BroadcastReceiver中的onReceive()方法。

现在我们就来实现一个简单的广播程序。Android提供了两种注册广播接受者的形式,分别是在程序中动态注册和在xml中指定。他们之间的区别就是作用的范围不同,程序动态注册的接收者只在程序运行过程中有效,而在xml注册的接收者不管你的程序有没有启动有会起作用。首先介绍在程序中动态注册的方式。

 

案例下载地址:https://github.com/DickyQie/android-four-components

更多相关文章

  1. Android(安卓)1.6 支持更多的屏幕大小和分辨率
  2. Programming access to Android(安卓)Market
  3. Android初试--了解和认识Android
  4. 为什么 Android(安卓)要采用 Binder 作为 IPC 机制?
  5. android 系统开发
  6. Android(安卓)Context关于POWER_SERVICE的实际应用
  7. Android流媒体开发之路三:基于NDK开发Android平台RTSP播放器
  8. 代码实例 -- 在程序里检查虚拟键盘状态, 并开启关闭
  9. android面试2

随机推荐

  1. 基于Android客户端的人人网开放平台开发
  2. Android 3.0 访问WebService 出现 androi
  3. Android常见知识点
  4. Android 保存文件路径方法
  5. 【攻克Android (13)】Menu 菜单
  6. android从相册中选择报无法加载照片
  7. Android 国际化问题
  8. android之R cannot be resolved to a var
  9. Android Studio中解决Gradle DSL method
  10. android pppd拨号问题及解决办法