Context与ApplicationContext

Posted never put off till tomorrow wh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的)

以上是关于Context与ApplicationContext的主要内容,如果未能解决你的问题,请参考以下文章

IOC与DI(xml 配置)

Spring IoC Container和Bean的介绍

有WebService的项目中写applicationContex.xml文件时应注意!!!

taglib block

spring中applicationContex.xml文件

Spring简答题