在Android编程中,Context类到底是什么?它用于什么?

我在开发者网站上读过这篇文章,但我无法清楚地理解它。


当前回答

Context是android.content类的实例。Context提供到执行应用程序的android系统的连接。例如,您可以通过上下文检查当前设备显示的大小。

它还允许访问项目的资源。它是有关应用程序环境的全局信息的接口。

Context类还提供对Android服务的访问,例如报警管理器以触发基于时间的事件。

活动和服务扩展了Context类。因此,它们可以直接用于访问上下文。

其他回答

Android上下文是一个接口(在一般意义上,而不是在Java意义上;在Java中,上下文实际上是一个抽象类!),它允许访问特定于应用程序的资源、类以及有关应用程序环境的信息。

如果你的android应用程序是一个web应用程序,你的上下文将类似于ServletContext(我没有在这里进行精确的比较)。

您的活动和服务还扩展了Context,因此它们继承了所有这些方法来访问应用程序正在运行的环境信息。

有关上下文的更多详细信息,请阅读本文。我将简要解释一下。

如果你想知道什么是上下文,你必须知道它的作用。。。例如,getContext()是检索上下文的方法之一。在getContext()中,Context与Activity及其生命周期相关联。我们可以将上下文想象为“活动”背后的一层,它将与“活动”的寿命一样长。一旦活动终止,上下文也会终止。该方法为活动提供功能列表,如:

Load Resource Values,
Layout Inflation,
Start an Activity,
Show a Dialog,
Start a Service,
Bind to a Service,
Send a Broadcast,
Register BroadcastReceiver.

现在想象一下:

上下文是一个位于其组件后面的层(接口)(活动、应用程序…)和组件的生命周期访问应用程序支持的各种功能环境和Android框架。

上下文表示获取环境数据的句柄。上下文类本身声明为抽象类,其实现由android OS提供。上下文就像电视的远程&电视中的频道是资源、服务等。

你能用它做什么?

正在加载资源。启动新活动。创建视图。正在获取系统服务。

获取上下文的方法:

getApplicationContext()获取上下文()getBaseContext()

只是把它放在那里给新手;

因此,首先了解单词上下文:

在英语库中。这意味着:

“构成事件、语句或这是一个可以充分理解和评估的概念。"“紧接在和之前的书面或口头的部分跟随一个单词或一段话,并阐明其含义。"

现在对编程世界有同样的理解:

应用程序/对象当前状态的上下文。它让新创建的对象了解发生了什么。通常,您调用它来获取有关程序的另一部分(活动、包/应用程序)的信息

您可以通过调用getApplicationContext()、getContext()和getBaseContext()或this(在活动类中)来获取上下文。

要在应用程序中获取上下文Anywhere,请使用以下代码:

在android应用程序中创建新类AppContext

public class AppContext extends Application {

    private static Context context;

    public void onCreate(){
        super.onCreate();
        AppContext.context = getApplicationContext();
    }

    public static Context getAppContext() {
        return AppContext.context;
    }
}

现在,每当您希望在非活动类中使用应用程序上下文时,都可以调用此方法,这样您就有了应用程序上下文。

希望这有帮助;)

Context是每个app-s沙盒的android特定api提供访问应用程序私有数据,如资源、数据库、私有文件目录、首选项、设置。。。

对于一个应用程序的所有活动/服务/广播侦听器,大多数私有数据都是相同的。

由于Application、Activity和Service实现了Context接口,因此可以在api调用需要Context参数时使用它们