一图看懂Context和子类的关系

2019-11-05  本文已影响0人  超级绿茶
Context.png

搞Android开发的一定知道Context上下文环境,之所以称为“环境”是因为Context只是一个抽象类,其中定义了大量的系统常量,且因为是抽象类,所以具体的功能就交由两个子类来实现。

这里我们需要说明的是ContextThemeWrapper类,ContextThemeWrapper封装了系统主题且派生了Activity,这就是我们在创建一个Dialog或PopupWindows时需要传Activity的原因,因为涉及到界面的东西都会和主题相关,而Application和Service没有界面没主题,所以只能传Activity。

说到Activity也顺便说一个内存泄漏的问题,很多情况下是把Activity作为参数传给某个对象,Activity销毁后持有其引用的对象却没有置空,导致Activity无法被GC回收。所以在开发时要注意:

另外也可以程序用Application来代替Activity来作为单例引用。

点击链接加入群聊【口袋里的安卓】:https://jq.qq.com/?_wv=1027&k=5z4fzdT

上一篇 下一篇

猜你喜欢

热点阅读