美文网首页
一图看懂Context和子类的关系

一图看懂Context和子类的关系

作者: 超级绿茶 | 来源:发表于2019-11-05 14:29 被阅读0次
Context.png

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

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

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

  • 不要用static修饰Activity;因为static变量的存活时间相当于整个应用程序的使用时间。
  • 对于Activity的引用建议用软引用,以便于垃圾GC的回收。

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

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

相关文章

网友评论

      本文标题:一图看懂Context和子类的关系

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