作为android 的四大基本组件之一的 BroadCast Receiver,是进行进程间通信的重要手段,几乎所有的应用都会注册和发送各种不同的intent, 那么有一个问题,你是否了解Intent?  作为延伸,我们需要了解一下 sendBroadcast()  / sendOrderedBroadcast() sendStickyBroadcast() 这三个方法的不同。

1)sendBroadcast: 最普通的发送intent的方式,是一种无序的广播机制,理论上,所有的接受者同时获得该intent的消息, 接受者之间不存在先后顺序, 不能截断/修改intent的数据。 应用普遍使用的就是该方式。

2)sendOrderedBroadcast: 是有序的发送广播的机制,所有接受者都可以设置priority , 按照priority 的大小顺序进行传递, 上一个优先级的接受者,可以截断和修改intent里面的数据。 同时,也可以设置一个最后接收者(总是在最后一个接收到这个intent,用来做一些特定的功能)。

3)sendStickyBroadcast: 是一种粘性广播。所谓的粘性是指,这个intent 没有周期限制, 一般的intent 只能发送给当前已经注册了这个监听的receiver,一旦发送完毕就会失去作用周期,而粘性广播没有这个限制,即便后来注册的intent也可以收到这个广播。 需要注意的一点是 这种发送方式不会导致ANR, 因为它没有发送时间的限制。

4)android 4.2 之后加入了多用户,UserHandle.ALL  /  UserHandle.CURRENT  /  UserHandle.CURRENT_OR_SELF  /  UserHandle.OWNER

      这就造就了另外一个发送函数 sendBroadcastAsUser 用来区分不同的用户。

更多相关文章

  1. Android三种方式获取SharedPreferences
  2. 删除androidAndroid递归方式删除某文件夹下的所有文件
  3. Handler异步方式详解及其使用
  4. 多种方式实现动态替换Android默认桌面Launcher
  5. 我们可以通过两种方式进入Android的console: 1. 直接执行命令emul
  6. Android监听器实现(二)Broadcast方式对通话状态(来电,拨号,挂机)的
  7. Android:销毁所有的Activity退出应用程序几种方式
  8. Android数据通信--USB通信的几种方式及使用场景

随机推荐

  1. mysql 递归查找菜单节点的所有子节点的方
  2. Mysql sql慢查询监控脚本代码实例
  3. 详解 MySQL的FreeList机制
  4. 详解MySQL的数据行和行溢出机制
  5. mysql 重要日志文件汇总
  6. MySQL的表空间是什么
  7. MySQL慢查询如何定位详解
  8. IDEA无法连接mysql数据库的6种解决方法大
  9. mysqldump你可能不知道的参数
  10. IDEA连接不上MySQL端口号占用的解决