剖析ActivityManagerService源码,了解广播接收和发送机制(二)

本文继续探讨Android的ActivityManagerService(AMS),关注点在于广播接收和发送机制。在简介部分回顾了上文内容,接着详细分析了在AMS内部如何执行发送广播的操作,包括关键的broadcastIntent方法调用流程。
摘要由CSDN通过智能技术生成

1.简介

“在安卓的广播机制中,用户自定义的Activity或自定义的子类BroadcastReceiver扮演着接收器的角色,Activity本身以及各类系统事件(如有电话拨入)也可以扮演广播发出者的角色。而其中,Android的Activity Manager Service无疑扮演着核心角色。总体上,安卓的广播采用的是订阅者、发布者的设计模式。”       
                                                                     ---来自本人第一篇博客《对android广播接收与发出机制的一些AMS以外的源码分析》

第一节,我们在AMS以外的部分,描述了广播接收和发送机制的原理,主要是一些初始化操作,第二节我们在AMS内部观察注册广播接收器机制的原理。

现在我们开始在AMS内部观察发送广播的原理。

2.发送广播

首先我们回顾一下第一节的一些内容。注册者线程的最后一步是向远程binder对象发送信息。具体细节已在上一节阐述过,这里略过。

发送信息的关键语句是ActivityManagerProxy,中的broadcastIntent方法:

public int broadcastIntent(IApplicationThread caller,
            Intent intent, String resolvedType, IIntentReceiver resultTo,
            int resultCode, String resultData, Bundle map,
            String[] requiredPermissions, int appOp, Bundle options, boolean serialized,
            boolea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值