2011-03-15 77 views
5

我对Android中的术语“上下文”有疑问。我发现上下文提供了有关应用程序运行环境的信息,但Application Context和Activity Context之间有什么区别?什么是Android中的上下文

,为什么我做这样的事情:

AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); 

为什么我通过上下文到构造?任何人都可以提供帮助我理解什么是上下文,以及上下文对象是什么?

我不想从android引用中复制/粘贴,因为我已经阅读过.....没有理解太多次。

+0

下面是关于[上下文]的类似问题的一个很好的答案(http://stackoverflow.com/questions/1026973/android-whats-the-difference-between-the-various-methods-to-get-a -context/1027438#1027438) – Adinia 2011-03-15 11:41:46

回答

3

它们都是Context的实例,但应用程序实例绑定到应用程序的生命周期,而Activity实例绑定到Activity的生命周期。因此,他们可以访问有关应用程序环境的不同信息。

如果您阅读getApplicationContext上的文档,则会注意到,如果您需要上下文的生命周期与当前上下文不同的上下文,则应该只使用它。这不适用于你的任何一个例子。

活动上下文可能有一些关于完成这些调用所需的当前活动的信息。如果您显示确切的错误消息,可能能够指出它究竟需要什么。

但是一般来说,除非你有充分的理由不使用活动上下文。

0

类概述

接口有关的应用程序环境的全局信息。这个 是一个抽象类,其实现由Android 系统提供。它允许访问特定应用的资源和 类,以及向上调用应用程序级的操作,如 发射活动,广播和接收意图等

anddev网站上说得很清楚。

您必须将其传递给其他类,以便他们可以访问全球 信息等等。

+0

这是远远不清楚。这是人们可以写得最模糊的描述之一。 – DallaRosa 2011-07-13 08:02:42

1

用简单的词生病试图解释。让我们看看你的例子

如果你正在使用AlertDialog Builder,AlertDialog将如何理解他将得到显示的位置? (如果您不在该活动中)

此处上下文出现在图片中。我们将活动上下文传递给AlertDialog。简而言之,AlertDialog将出现在提供的上下文中。

这是我的理解是正确的,如果我错了。