`
wiseideal
  • 浏览: 449030 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Context的区别

 
阅读更多
引用

In a regular Android application, you usually have two kinds of Context, Activity and Application.

Reading the article a little bit further tells about the difference between to the two and why you might want to consider using the application Context (Activity.getApplicaitonContext()) rather than using the Activity context ("this"). Basically the Application context is associated with the Applicaiton and will always be the same throughout the life cycle of you app, where as the Activity context is associated with the activity and could possible be destroyed many times as the activity is destroyed during screen orientation changes and such.

I couldn't find really anything about when to use getBaseContext() other than a for a one liner from Dianne Hackborn, one of the Google engineers working on the Android SDK:

Don't use getBaseContext(), just use the Context you have.

That was from a post on the android-developers newsgroup, you may want to consider asking your question there as well because a handful of the people working on Android actual monitor that newsgroup and answer questions.

So overall it seems preferable to use the global application context when possible.


I got bad window token errors when using application context to Progress Dialog. So i used activity context instead.


在一般android程序中,通常有两种类型的Context:Activity类型以及Application类型。

通过更深的了解,你也许会在使用Application类型的Context时比使用Activity类型的更小心。基本上,Application类型的Context会伴随程序的整个生命周期,而Activity类型的Context则与Activity的状态相关,它会随着Activity的消亡而消亡。例如当屏幕方向发生变化时。


我找不到更多关于getBaseContext()的相关用法,除了google Android SDK工程师 Dianne Hackborn的一句话
不要使用getBaseContext(),使用你手头上的Context。

这句话来自android-developers 新闻组,许许多多的android开发者都在关注着新闻组,你也可以在那里提出自己的问题,有人会回答。

所以总的来说最好还是尽可能的使用Application类型的context。
我在使用ProgressDialog的时候使用 Application类型的Context 遇到了 bad window token errors。然后我用Activity类型的Context替代
分享到:
评论

相关推荐

    Android Context与GetApplicationContext的区别及使用1

    【Android Context 与 GetApplicationContext 的区别及使用】 在Android开发中,Context是一个至关重要的概念,它扮演着应用程序组件与系统服务交互的关键角色。Context可以理解为应用运行时的上下文环境,提供了对...

    spring配置中<context-param> 和<init-param>的 区别

    `&lt;context-param&gt;` 和 `&lt;init-param&gt;` 的主要区别在于作用范围和目标对象。`&lt;context-param&gt;` 作用于整个Web应用,影响Spring的ApplicationContext;而 `&lt;init-param&gt;` 则是针对特定Servlet或Filter的个性化配置。...

    从源码解析Context思维导图

    详细总结了Context是什么?Android系统中Context的继承关系,不同Context源码分析,Context应用场景,getApplication和getApplicationContext区别。

    安卓区分几种不同的Context的区别

    Context |— ContextWrapper |— —Application |— —ContextThemeWrapper |— — — —Activity |— —Service |— — — IntentService Application的Context对于Activity而言没有返回栈 Context一般用来access ...

    <context-param>与<init-param>的区别与作用

    总结一下,`&lt;context-param&gt;`和`&lt;init-param&gt;`的主要区别在于: 1. **作用范围**:`&lt;context-param&gt;`是全局的,应用于整个Web应用程序;而`&lt;init-param&gt;`是局部的,仅应用于指定的Servlet或Filter。 2. **加载时机*...

    init-parameter和context-parameter区别

    在探讨`init-parameter`与`context-parameter`的区别之前,我们首先需要理解这两个概念的基本含义以及它们在Java Web应用,特别是Servlet容器环境中的作用。`init-parameter`和`context-parameter`都是在部署描述符...

    【JavaScript源代码】Vue3中SetUp函数的参数props、context详解.docx

    - `props`和`attrs`的区别在于,props是声明式的,用于接收父组件传递的已知数据,而`attrs`则是捕获所有其他未被声明的数据。 示例代码中,子组件`NoCont`一开始没有声明`mytitle`,所以尝试访问`props.mytitle`时...

    Android编程中context及全局变量实例详解

    Application context和Activity context的区别: 这是两种不同的context,也是最常见的两种。第一种中context的生命周期与Application的生命周期相关的,context随着Application的销毁而销毁,伴随application的一生...

    Context-Based, Adaptive, Lossless Image Coding

    无损图像编码与有损编码的主要区别在于,无损编码不引入任何不可逆的像素损失,这对于对图像质量要求极高的应用如医学成像、遥感图像处理以及一些专业图像编辑工作至关重要。CALIC 技术旨在提供接近理论极限的压缩...

    GoLang之使用Context控制请求超时的实现

    两者的主要区别在于`TODO()`可以作为基点创建新的子Context,以便添加额外的信息。 Context有四个重要的派生方法: 1. `WithCancel()`: 它接受一个现有的Context,返回一个新的Context和一个`cancel`函数。调用`...

    基于context模型和尺度空间的自适应小波去噪研究

    本文介绍了一种基于context模型和尺度空间的自适应小波去噪研究方法,这种方法集中于如何利用context模型来衡量小波系数,并在小波域中将不同系数区别处理,以达到去除图像噪声的目的。 一、小波分析在图像去噪中的...

    android基础教程之context使用详解

    区别联系: 代码如下:public class MyActivity extends Activity { public void method() { mContext = this; // since Activity extends Context mContext = getApplicationContext(); mContext = get

    Category Theory in Context

    《范畴论在上下文中的应用》(Category Theory in Context)是Emily Riehl撰写的一本介绍范畴论基础知识及其应用的重要著作。该书旨在为读者提供一个系统化的学习路径,帮助他们理解和掌握范畴论的基本概念和技巧。...

    Practical Software Architecture Moving from System Context to Deployment

    在系统环境(System Context)章节中,书中讨论了业务环境(Business Context)与系统环境之间的区别与联系。系统环境是业务环境的一个子集,它关注的是系统与外部环境如何交互。在定义系统环境时,需要明确系统的...

    修改Tomcat默认访问根目录的方法

    在Tomcat默认安装后,tomcat的主目录是webapps/root目录。 在conf文件夹下面找到server.xml 打开 ...Linux与Windows一样,只是文件夹地址有差别 代码如下:&lt;Context docBase=”D:/Tomcat 8.0/webapp

    weblogic 11G 虚拟目录映射weblogic.xml配置

    首先,我们需要了解`&lt;wls:context-root&gt;`元素,它是定义Web应用访问URL的基础。例如,如果你设置`&lt;wls:context-root&gt;/myapp&lt;/wls:context-root&gt;`,那么Web应用程序可以通过`http://yourserver:port/myapp`访问。但这...

    Shaping Web Usability_Interaction Design in Context.pdf

    - **简单与丰富站点环境的区别**:对比了不同类型的站点环境,并分析其优缺点。 ##### 第4章:网络用户(第一部分)——受众 - **理解网络用户**:介绍了如何从心理学和社会学角度理解网络用户的行为特征。 - **...

Global site tag (gtag.js) - Google Analytics