Android Context

2021-01-03  本文已影响0人  凯玲之恋

各个Context 类的关系图

16ca48ecb5048046.png

Context 作用是啥

看它能做啥,看看主要提供了哪些接口了。

四大组件相关 包括启动 Activity、Broadcast、Service,获取 ContentResolver 等
获取系统/应用资源 包括 AssetManager、PackageManager、Resources、System Service 以及 color、string、drawable 等
获取应用相关信息
文件相关
数据库相关 包括打开数据库、删除数据库、获取数据库路径等
其它 比如设置 ComponentCallbacks,即监听配置信息改变、内存不足等事件的发生

ContextImpl 和 ContextWrapper 有啥区别?

Class Diff
ContextImpl 真正实现了Context中所有的函数 (真正厉害的!)
ContextWrapper Context 的代理类,所有的操作都是通过内部成员 mBase 完成的
ContextThemeWrapper 内部包含了与主题相关的接口,有自己的 Theme 以及 Resource,并且 Resource 可以传入自己的配置初始化

Activity、Service、Application 各自的Context有啥区别?

API
Activity 调用 createBaseContextForActivity
Service/Application 调用 createAppContext
Provider 调用 createPackageContext
BroadcastReceiver 直接从 Application.getBaseContext() 来获取 ContextImpl 对象

参考

Context都没弄明白?

上一篇下一篇

猜你喜欢

热点阅读