美文网首页
Context 包含的内容,由来和作用

Context 包含的内容,由来和作用

作者: 路人甲1234 | 来源:发表于2020-11-30 23:53 被阅读0次

先看继承关系

image.png

可以看到我们熟悉的Application和Activity,Service都是继承或间接继承的ContextWrapper。差别就在Activity中间还有一层ContextThemeWrapper

Context的变量主要都是定义了一些常量。剩下的都是一些方法。下面会介绍一些.

ContextWrapper中只有一个成员变量就是 Context mBase,然后所有的抽象方法的实现都是调用mBase.相同方法名。意思就是什么都没做。暂时搞不明白这样实现的目的。

ContextImpl是Context具体的实现类。

看继承关系,我们知道了1个APP里面包含的Context个数:Activity个数+Service个数+1(Application)

Application的创建是在ActivityThread里面的Handler的HandbindApplication()创建,这里涉及到了APP启动流程,另外再分析

Activity也是在创建的时候通过ActivityThread的performLaunchActivity()方法调用的createBaseContextForActivity创建的。

Context部分作用:

   1.操作Theme:如setTheme(),getThemeResId(),getTheme(),initializeTheme();
   2.获取APP配置信息和资源信息相关:getPackageManager(),getResources(),getAssets(),getBasePackageName(),getPackageName(),getApplicationInfo(),getPackageResourcePath()等
   3.操作数据库
   4.操作文件
   5.操作SharedPreferences
   6.启动Activity:startActivity()等
   7.启动发送Broadcast:sendBroadcast()等
   8.绑定service:bindService()等
   9.注册Receiver:registerReceiver()等
   10.检查权限:checkPermission()等

相关文章

网友评论

      本文标题:Context 包含的内容,由来和作用

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