广播

作者: hhws | 来源:发表于2018-04-08 14:55 被阅读0次

说明:Activity,Service,Application都是ContextWrapper的子类。ContextWrapper里面有一个Context类型的成员变量mBase,当然它实际的类型是ContextImpl。ContextWrapper实现方法的时候调用了mBase的方法。
继承关系图

image

注册广播和反注册必须是同一个Context,否则会出现Receiver not registered 异常。

ContextImpl:
@Override
public void unregisterReceiver(BroadcastReceiver receiver) {
if (mPackageInfo != null) {
IIntentReceiver rd = mPackageInfo.forgetReceiverDispatcher(
getOuterContext(), receiver);
try {
ActivityManagerNative.getDefault().unregisterReceiver(rd);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
} else {
throw new RuntimeException("Not supported in system context");
}
}

LoadApk:
根据context找到相应的Receiver
public IIntentReceiver forgetReceiverDispatcher(Context context,
BroadcastReceiver r) {
synchronized (mReceivers) {
ArrayMap<BroadcastReceiver, LoadedApk.ReceiverDispatcher> map = mReceivers.get(context);
LoadedApk.ReceiverDispatcher rd = null;

相关文章

  • Android基础:BroadcastReceiver(应用场景

    广播的类型 广播的类型主要分为: 普通广播 系统广播 无序广播 有序广播 粘性广播 App应用内广播 普通广播(i...

  • 我要做 Android 之 广播

    广播的分类: 普通广播 有序广播 本地广播 粘性广播 一:普通广播 普通广播是一种完全异步执行的广播,在广播发出之...

  • 入门第五天

    广播接收器 分为动态广播器和静态广播器,静态广播器只能接受显式广播 广播 分为标准广播和有序广播,标准广播使得所有...

  • 第一行代码

    —— 广播机制 纲要 广播简介 广播接收动态注册静态注册 广播发送标准广播有序广播 本地广播 最佳实践 简介-全局...

  • 第五章 全局大喇叭,详解广播机制

    5.1广播机制简介 广播分为标准广播和有序广播 标准广播:异步执行广播,广播发出后,所有的广播接收器都会几乎在同时...

  • BroadcastReceiver详解

    1、广播的类型 广播分为标准广播和有序广播。 1.1、标准广播 标准广播是一种完全异步执行的广播,在广播发出之后,...

  • Android - base - Broadcast

    四大组件之广播 大纲 广播机制简介 广播接收器 广播发信器 接收系统广播 发送自定义广播 本地广播 #广播机制简介...

  • Android广播机制

    广播机制 发送广播 Android中的广播主要分为两种类型——标准广播和有序广播 发出标准广播 标准广播发出后,所...

  • Android广播机制

    广播分为标准广播 和 有序广播一、标准广播 三、系统广播Android内置很多系统级别广播,如手机开机后发一条广播...

  • Android广播

    参考:Android总结篇系列:Android广播机制Android广播机制 一. 广播 1. 广播是什么? 广播...

网友评论

      本文标题:广播

      本文链接:https://www.haomeiwen.com/subject/kcdycftx.html