Android Context 解析

来源:互联网 发布:js中隐藏div 编辑:程序博客网 时间:2024/06/06 12:54

本文 参考 郭大神 http://blog.csdn.net/sinyu890807/article/details/47028975 进行精简总结




ContextWrapper为上下文功能的封装类

ContextImpl为上下文功能的实现类


ContextWrapper又有三个直接子类,是Application、Service、ContextThemeWrapper


ContextThemeWrapper是一个带主题的封装类,直接子类是Activity


所以 Context 分为三种 Application、Service、Activity,具体的功能实现由ContextImpl类来实现

Context数量 = Activity数量 + Service数量 + 1Application


Application是Context的一个子类,全局只有一个,本身已经为一个单例


getApplication()和getApplicationContext()都是返回Application对象

getApplicationContext()作用域大于getApplication() : getApplication()只有在Activity和Service中才能调用到

任何一个Context实例,只要调用getApplicationContext() 都能拿到Application的对象


ContextWrapper.attachBaseContext() 方法由系统调用,传入一个Context参数赋值给mBase对象

Application中方法的执行顺序:


可以在Application的onCreate()中初始化各种全局变量

0 0