我们知道Application和activity,Service都是直接间接继承Context,(2)为什么他们还会有一个Context对象,如下面的mBase?(3)那么一个应用程序的所有context之和还会只是Application和activity,Service数 目之和吗?不应该是2*activity数目+2*Service数目+Application数目public class ContextWrapper extends Context {
Context mBase;
......
protected void attachBaseContext(Context base) {
if (mBase != null) {
throw new IllegalStateException("Base context already set");
}
mBase = base;
}
......
}
2 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
首先Context类是一个抽象类,无法直接实例化,其次关于你这个问题,源代码中的mBase只是一个引用,它的值(也就是base)是在attachBaseContext方法中传递进来的,换言之,这里的mBase的值是函数回调时传递进来的,并非由创建出来,所以并不冲突,一个应用程序中的context之和等于Activity的数量+Service数量+1,这里的1就是Applicant的Context,一个静态变量,用于保存和同步APP全局的环境配置信息。
添加回答
举报
0/150
提交
取消