Context 的理解:
Context 场景,上下文,应用环境全局信息的接口;
Context 的分类:
Application,Activity,Service 都继承自 Context;Activity 直接继承
自 ContextThemeWrapper(涉及到用户界面的展示,包含了主题相关
的接口),Application,Service 直接继承自 ContextWrapper;
只 有 Activity 的 Context 能 够 show dialog , 除 此 之 外 他 们 的
Context 功能一样,区别就是:Application 和 Service 的 Context 在
InflateLayout 时使用的时应用的 Theme 而不是该 Acativity 的 Theme;
Application 和 Service 的 Context 在启动新的 Activity 时,需要创建新
的 Task,因为他们没有任务栈;
Context 导致的内存泄漏:
Context 被引用后,无法释放,导致的内存泄漏。其中包括:
1. 单 例 模 式 下 , 如 果 该 对 象 持 有 了 Context 或 者 View ( 非
Application Context),那么因为该单例对象的存活时间,大于 Activity
和 Service 的生命周期,导致内存泄漏;解决办法是,通过静态方法
的参数直接传递 Context,而不是通过构造方法传递;
2.非静态内部类(包括匿名内部类),它们会持有外部类的引用,
导致外部类无法被释放,解决办法死是,使用静态内部类,如果传入
评论0
最新资源