Context分析

2020-10-09  本文已影响0人  _喝喝酒吹吹风_

Context继承关系

context.png

Context的作用

为什么Activity需要继承自ContextThemeWrapper,而Service和Application直接继承自ContextWrapper呢?

ContextThemeWrapper类,从它的命名就可以看出,其内部包含了与Theme相关的接口,当然,只有Activity才需要主题,Service和Application是不需要主题的,因为Service是没有界面的后台场景,所以Service和Application直接继承于ContextWrapper

Activity的this和getBaseContext()有什么区别?

Activity就是继承Context的,所以this是返回Activity自己;
getBaseContext()返回的是ContextWrapper里面的mBase(不包含Theme相关的功能);

代理关系

我们很多人往往把Activity理解成它继承了Context,是的没错,它确实继承自Context,但我认为,把Activity理解成它代理了Context,会更贴合实际意义一些.

上一篇 下一篇

猜你喜欢

热点阅读