广播与广播接收者

Android的广播有哪几种类型?各有什么特点?

1、系统广播(System Broadcast):Android系统内置的广播,用于对外广播系统基本状态的变化。比如开机广播、锁屏广播、网络状态变化广播、电量变化广播、应用安装与卸载广播等。系统广播,用户只能接收,无法发送。

2、普通广播(Normal Broadcast):也称无序广播,是用户自行发送和接收的一种广播,可通过定义Intent-Filter指定广播的actiondata。发送广播时使用sendBroadcast()

3、有序广播(Ordered Broadcast):也是用户自定义发送和接收的一种广播,区别在于广播发出后,广播接收者按照优先级(priority)从高到低依次接收,并且优先级高的接收到广播后,可以对广播进行拦截和修改。如果两个广播接收者优先级相同,则动态注册的广播优先级要高于静态注册的广播接收者。发送广播时使用sendOrderedBroadcast()

4、粘性广播(Sticky Broadcast):与普通广播不同的是,粘性广播发送后,信息就一直保存在系统的容器内,需要时可直接通过IntentFilter匹配指定的Action获取,无需广播接收者。比如电池电量的广播就是粘性广播。发送粘性广播使用sendStickyBroadcast()
注:粘性广播因安全问题,从Android 5.0(API 21)起被弃用。

5、本地广播(Local Broadcast):Android的广播属于全局广播,可以跨APP通信,只要条件符合,当前APP发出的广播可以被其它APP接收到,也可以接收到其它APP发出的广播。因此存在一定的安全性问题和效率问题。当不存在跨APP通信的需求时,推荐使用Android的本地广播。本地广播有以下几个特性:
1) 本地广播仅限APP内发送和接收,更安全高效;
2) 本地广播接收者只能动态注册,不能静态注册。

2. 广播有哪两种注册方式?二者有什么区别?

注册广播有两种方式,一种是在代码中进行动态注册;一种是在清单文件在进行静态注册。

1、动态注册:只有在应用启动后才能接收广播,应该未启动或已关闭则不能接收到广播。这种方式比较节省资源,推荐。

2、静态注册:无论应用处于何种状态,均可以接收到广播。这种方式比较耗费资源,除非有需求,否则不推荐这种方式。

也因此,Android中有些广播是不支持静态注册的,比如锁定屏幕和解锁屏幕的广播,电量变化的广播,时间变化的广播,配置变化的广播。

  1. android.intent.action.SCREEN_ON
  2. android.intent.action.SCREEN_OFF
  3. android.intent.action.BATTERY_CHANGED
  4. android.intent.action.CONFIGURATION_CHANGED
  5. android.intent.action.TIME_TICK

3. 不同方式注册的广播,onReceiver()方法里的Context参数相同吗?

不相同。

  1. 静态注册的广播,返回的是ReceiverRestrictedContext
  2. 动态注册的广播返回的是注册时的Context,比如Activity。
  3. 本地广播返回的是ApplicationContext

参考资料

Android广播类型汇总 - Carson_Ho

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354