Android Context

什么是Context?


读过书的大家脑海里应该会有这么一个场景:

“请联系上下文,分析这句话在文中的作用。”

在于文中,我们吧上下文理解为语境,在程序中,我们可以响应的将上下文理解为:当前对象在程序中所出的一个环境,一个系统交互过程——这就是Context。

Android 应用程序在一下几种情况下会创建一个Context:

    1、创建一个Application

    2、创建一个Activity

    3、创建一个Service

读过源码的同学应该会比较清楚Application、Activity、Service与Context的关系——即它们三个都是Context的子类。所以不难理解,不通对象的Context的生命周期会有相应的差别。Application伴随者App的整个生命周期,所以Application的Context对象也是一个贯穿整个App生命周期的Context对象,Activity,service的Context对象都与它们的生命周期相对应。



Context的那些坑

1、内存泄漏

图1.1

上面的单利引用了一个Context,看这好像没什么问题,但是Context的来源是不能确定的,当MyUtil这个类被引用了,其所引用的Context就是一直被引用进而造成持有这个Context的类一直得不到释放,故会造成内存的泄漏。

一般我们可以采用一下的方法进行优化:

图1.2
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容