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

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


当前回答

android.content.Context类提供到android系统和项目资源的连接。它是有关应用程序环境的全局信息的接口。

上下文还提供对Android服务的访问,例如位置服务。

Activities和Services扩展了Context类。

其他回答

上下文是指不同时间段内的组件(或应用程序)。如果我确实在下午1点到2点之间吃了那么多食物,那么我在这段时间内使用的所有方法(或资源)都将被用来访问。内容是特定时间的组件(应用程序)。应用程序组件的上下文根据组件或应用程序的底层生命周期不断变化。例如,在Activity的onCreate()内,

getBaseContext()--提供由Activity的构造函数设置(创建)的Activity的上下文。getApplicationContext()--在创建应用程序期间提供Context设置(已创建)。

注意:<application>包含所有Android组件。

<application>
    <activity> .. </activity> 

    <service>  .. </service>

    <receiver> .. </receiver>

    <provider> .. </provider>
</application> 

这意味着,当您从任何组件内部调用getApplicationContext()时,您正在调用整个应用程序的公共上下文。

系统根据组件的生命周期不断修改上下文。

上下文是有关应用程序环境的全局信息的“接口”。实际上,Context实际上是一个抽象类,其实现由Android系统提供。

它允许访问特定于应用程序的资源和类,以及应用程序级操作的调用,例如启动活动、广播和接收意图等。

在下图中,您可以看到一个类的层次结构,其中Context是这个层次结构的根类。特别值得强调的是,活动是上下文的后代。

语境到底是什么?

根据Android参考文档,它是一个表示各种环境数据的实体。它提供对本地文件、数据库、与环境相关的类加载器、服务(包括系统级服务)等的访问。在这本书中,以及在您使用Android进行的日常编码中,您将看到上下文频繁传递。

摘自《实践中的Android》一书,第60页。

几个Android API需要Context作为参数

如果您查看各种Android API注意,其中许多都将android.content.Context对象作为参数您还将看到“活动”或“服务”通常用作上下文这是因为这两个类都是从Context扩展的。

android.content.Context类提供到android系统和项目资源的连接。它是有关应用程序环境的全局信息的接口。

上下文还提供对Android服务的访问,例如位置服务。

Activities和Services扩展了Context类。

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

你能用它做什么?

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

获取上下文的方法:

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