Context与ApplicationContext

Android开发中经常会用到Context,从英文角度释义“场景”。从程序角度,Context是一个抽象类,通过代码可以发现Activity、Service、Application都是Context的子类。

Activity、Service、Application都是继承自ContextWrapper。

接下来我们来看看Context与ApplicationContext,前者是Activity的Context,后者是Application的Context。

Activity的Context肯定跟随Activity的生命周期而变化,后一种Application的Context随着Application的变化而变化,跟随Application的一生。

Application的Context是一个全局静态变量,SDK的说明是只有当你引用这个context的生命周期超过了当前activity的生命周期,而和整个应用的生命周期挂钩时,才去使用这个application的context。

一种推荐的用法就是应用程序注册广播broadcast时,使用这个context。

引用application context并不会导致内存泄漏。引用activity的context才会导致内存泄漏,当你的引用对象的生命周期超过了当前activity的生命周期时,系统回收你的activity时发现还有一个context的强引用,而不去销毁这个activity,导致内存泄漏,在开发过程中,需要非常重视这点(一个全局静态变量在引用context时一定要使用application的Context, 而不要使用activity的)

时间: 2024-08-26 08:33:25

Context与ApplicationContext的相关文章

Context与ApplicationContext的区别

ApplicationContext并没有这个类,其实更应该叫做:Activity与Application在作为Context时的区别.嗯,的确是这样的,大家在需要Context的时候,如果是在Activity中,大多直接传个this,当在匿名内部类的时候,因为this不能用,需要写XXXActivity.this,很多哥们会偷懒,直接就来个getApplicationContext.那么大家有没有想过,XXXActivity.this和getApplicationContext的区别呢? XX

Spring Context及ApplicationContext

web.xml 这是声明了一个父工厂 <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/conf/*.xml</param-value></context-param> servlet 这是声明了一个子工厂 <servlet> <servlet-name>SpringMVC</servl

转:Android Context的理解

本文大多数内容翻译自:http://www.doubleencore.com/2013/06/context/  我重新组织了下内容以及结构,建议大家尽可能看下原文. 1.Context概念 其实一直想写一篇关于Context的文章,但是又怕技术不如而误人子弟,于是参考了些资料,今天准备整理下写出来,如有不足,请指出,参考资料会在醒目地方标明. Context,相信不管是第一天开发Android, 还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源.启动一个新的

Android Context 上下文 你必须知道的一切

http://blog.csdn.net/lmj623565791/article/details/40481055/ 本文大多数内容翻译自:http://www.doubleencore.com/2013/06/context/  我重新组织了下内容以及结构,建议大家尽可能看下原文. 1.Context概念 其实一直想写一篇关于Context的文章,但是又怕技术不如而误人子弟,于是参考了些资料,今天准备整理下写出来,如有不足,请指出,参考资料会在醒目地方标明. Context,相信不管是第一天

Android中Context解析

Context概念 当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context. Context是一个抽象基类,我们通过它访问当前包的资源(getResources.getAssets)和启动其他组件(Activity.Service.Broadcast)以及得到各种服务(getSystemService),当然,通过Context能得到的不仅仅只有上述这些内容.对Context的理解可以来说:Context提供了一个应用的运行环境,在Context的大环境里,应用才可

context详解

1.Context概念: Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源.启动一个新的Activity.获取系统服务.获取内部文件(夹)路径.创建View操作时等都需要Context的参与,可见Context的常见性.大家可能会问到底什么是Context,Context字面意思上下文,或者叫做场景,也就是用户与操作系统操作的一个过程,比如你打电话,场景包括电话程序对应的界面,以及隐藏在背后的数据: Andr

怎么获取Spring的ApplicationContext

在 WEB 开发中,可能会很少需要显示的获得 ApplicationContext 来得到由 Spring 进行管理的某些 Bean, 今天我就遇到了,在这里和大家分享一下, WEB 开发中,怎么获取 ApplicationContext 一       要想怎么获取 ApplicationContext, 首先必须明白 Spring 内部 ApplicationContext 是怎样存储的.下面我们来跟踪一下源码 首先:从大家最熟悉的地方开始 Java代码   <listener> <

关于context你必须知道的一切

本文大多数内容翻译自:http://www.doubleencore.com/2013/06/context/  我重新组织了下内容以及结构,建议大家尽可能看下原文. 1.Context概念 其实一直想写一篇关于Context的文章,但是又怕技术不如而误人子弟,于是参考了些资料,今天准备整理下写出来,如有不足,请指出,参考资料会在醒目地方标明. Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源.启动一个新的A

Context的使用

1.Context概念 Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源.启动一个新的Activity.获取系统服务.获取内部文件(夹)路径.创建View操作时等都需要Context的参与,可见Context的常见性.大家可能会问到底什么是Context,Context字面意思上下文,或者叫做场景,也就是用户与操作系统操作的一个过程,比如你打电话,场景包括电话程序对应的界面,以及隐藏在背后的数据: 但是在程序