Application context和Activity context的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Application context和Activity context的区别相关的知识,希望对你有一定的参考价值。

参考技术A 含义:
1、Application context的意思
ApplicationContext的中文意思是"应用前后关系",它继承自BeanFactory接口,除了包含BeanFactory的所有功能之外,在国际化支持、资源访问(如URL和文件)、事件传播等方面进行了良好的支持,被推荐为Java EE应用之首选,可应用在Java APP与Java Web中。
2、Activity context:
Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activity,broadcasting和接收intents

区别:
1、第一种中context的生命周期与Application的生命周期相关的,context随着Application的销毁而销毁,伴随application的一生,与activity的生命周期无关
2、第二种中的context跟Activity的生命周期是相关的,但是对一个Application来说,Activity可以销毁几次,那么属于Activity的context就会销毁多次.至于用哪种context,得看应用场景
在使用context的时候,防止内存泄露,注意一下几个方面:
1. 保证引用activity的对象要与activity本身生命周期是一样的

2. 对于生命周期长的对象,可以使用application context
3. 避免非静态的内部类,尽量使用静态类,避免生命周期问题

cshtml 中的 AppState = Context.Application 和 控制器中的 Application 也相等

 

AppState = Context.Application
@{
    ViewBag.Title = "Home Page";

    AppState["s1"] = "状态一";
}

<div class="jumbotron">
    <p>AppState: @AppState["s1"]</p>
    <p>Context.Application: @Context.Application["s1"]</p>
</div>

  

 

以上是关于Application context和Activity context的区别的主要内容,如果未能解决你的问题,请参考以下文章

Application中的 Context 和 Activity 中的Context区别

Application context和Activity context的区别

安卓 Context 和 Application的关系

关于content的理解

Android中的Context类簇(装饰模式)及Context用法详解,Application用法详解

Spring MVC 和 Application Context 多次刷新尝试