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

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


当前回答

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

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

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

其他回答

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

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

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

上下文是系统的句柄;它提供诸如解析资源、访问数据库和首选项等服务。Android应用程序有活动。上下文就像应用程序当前运行的环境的句柄。活动对象继承上下文对象。

有关更多信息,请参阅Android Studio的Android开发简介-教程。

如果您想将Context与Android中其他熟悉的类连接,请记住以下结构:

Context<ContextWrapper<应用程序Context<ContextWrapper<ContextThemeWrapper<活动Context<ContextWrapper<ContextThemeWrapper<活动<列表活动Context<ContextWrapper<ServiceContext<ContextWrapper<Service<IntentService

所以,所有这些类都是以自己的方式存在的上下文。如果愿意,可以将Service和ListActivity转换为Context。但如果仔细观察,一些类也会继承主题。在活动或片段中,您希望将主题化应用于视图,但不关心它,例如Service类。

我在这里解释上下文的差异。

上下文是我们大多数人所称的应用程序。它由Android系统制作,只能执行应用程序所能执行的操作。在Tomcat中,Context也是我所称的应用程序。

有一个上下文包含多个活动,每个活动可能有多个视图。

很明显,有些人会说它不适合因为这个或那个,他们可能是对的,但是说Context是您当前的应用程序将有助于您理解在方法参数中放置的内容。

Context是应用程序/对象当前状态的上下文。它是表示各种环境数据的实体。上下文帮助当前活动与外部android环境交互,如本地文件、数据库、与环境相关的类加载器、包括系统级服务在内的服务等等。

上下文是系统的句柄。它提供诸如解析资源、访问数据库和首选项等服务。android应用程序有活动。它就像应用程序当前运行的环境的句柄。活动对象继承Context对象。

通过不同的调用方法可以获取上下文1.getApplicationContext(),2.getContext(),3.getBaseContext()4.或这个(在活动课上)。