为了账号安全,请及时绑定邮箱和手机立即绑定

Android应用程序Context数目问题

Android应用程序Context数目问题

繁星淼淼 2019-04-18 13:19:19
我们知道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全局的环境配置信息。


查看完整回答
反对 回复 2019-05-14
  • 2 回答
  • 0 关注
  • 522 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信