Context以及ContextWrapper

如有错误或遗漏,敬请指正!

在Android应用开发中,Context是一个非常重要的类,它是一个抽象类,是关于一个应用环境的描述的接口,Context的实例在应用程序被启动时由Android系统提供。

由于Context是一个抽象类,所以Android系统为我们提供了ContextWrapper。在ContextWrapper类中,除了构造器ContextWrapper(Context base)、方法ContextWrapper.attchBaseContext(Context base)、ContextWrapper.getBaseContext()外,其它方法基本上都是对Context的方法再包装。

构造器ContextWrapper(Context base)
该构造器可以用来初始化ContextWrapper实例,并设置一个Context实例到ContextWrapper中。

方法ContextWrapper.attchBaseContext(Context base)
该方法用于设置Context实例。该方法的实现是,如果ContextWrapper实例中已经持有Context的实例,那么就会抛出异常;否则就接收并持有Context实例。

方法ContextWrapper.getBaseContext()
该用法用于获取被设置的Context的实例。

ContextWrapper是Android众多应用组件的直接父类,例如ContextThemeWrapper、Application、Service等。在这些子类的构造器中都是向ContextWrapper的构造器中传递了null值,由此可见,系统都是调用ContextWrapper.attchBaseContext(Context base)方法来设置Context实例的,因此该方法在使用ContextWrapper的子类时会占有重要的地位,甚至可以被视作这些子类的生命周期的开始。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值