Android Context初探

1.背景

作为一个安卓新手,每当我看到使用上下文作为一个参数,我就感到有点焦虑。有时候通过这个可以,有时候不可以。我不知道为什么我能,为什么我不能。最根本的原因是我仍然对语境略知一二。碰巧上下文在许多地方被用作参数。继续了解一点不是个好主意。有必要研究什么是语境。

2。什么是语境?

语境在汉语中是指语境。在小学语文课堂上,我们一定接触到了理解词汇与语境的关系这个话题。“上下文”是指上下文。我们必须更好地理解上下文的含义。首先,小学有太多的话题。第二,这在现实生活中经常遇到。当你的暗恋者告诉你你真的是一个好人时,你必须根据具体情况来推断。这句话真的是对你的赞美还是拒绝你的委婉说法?程序开发中“语境”的含义和语文课中“语境”的含义一样吗?

答案是一样的。在程序中,上下文是指应用程序/对象的当前状态。例如,在C语言中,可以运行一段简单的C=b代码。首先,分配A和B。甲和乙被分配。A和B的分配状态是c=a b是否可以运行的上下文。然而,分配A和B,运行c=a b,不是直接运行。主要功能必须首先运行。主函数的运行状态也是主函数中每个代码的上下文。

在C语言中,我们不需要特别纠结于上下文的概念,这不会影响代码编写,但是上下文的概念也是存在的。所谓的《周易》说“普通人不知道它的日常用途”。然而,在Android平台上,上下文是作为一个参数专门引入的,并且有很多地方可以使用它,所以有必要与上下文的概念纠缠在一起。

为什么安卓需要上下文作为参数?

我个人理解这是为程序员准备的。例如,四个主要组件之一的活动已经打包在一个完整的工程环境中。在打包过程中,已经考虑了操作环境的适应、组件生命周期的管理以及页面布局资源的调度。这些就是所谓的背景。在这种情况下,程序员只需要继承和添加他们自己的代码就可以使程序运行,而无需从头开始编写。继续用上面的C语言例子来理解是,假设系统帮助我们编写主函数,这是一个上下文封装,我们不必编写主函数来添加我们的代码来运行。这也是为什么安卓系统的四个主要组件不能直接是新的,因为它不是一个简单的对象,而是需要一个上下文环境,并且只能继承打包的组件。

那么上下文作为参数做什么?谷歌给出的上下文的官方定义是由获奖数字提示的:

关于应用环境的全球信息界面。这是一个抽象类,它的实现是由安卓系统提供的。它允许访问特定于应用程序的资源和类,并执行应用程序级操作(例如,启动活动、广播和接收意图等)。)。

说实话,虽然官方定义明确定义了上下文功能,但是根据这个定义,理解和启动活动是很容易的,因为活动必须在某个上下文中启动,前面已经解释过了,但是这个定义没有解释为什么上下文可以访问资源。

是的,为什么?

我的理解是,上下文相当于将当前的安卓系统上下文分配给上下文参数,也就是说,告诉我们当前程序所处的环境,这个环境由各种资源组成,因此环境背后的资源可以通过上下文来访问。

3。上下文类继承图

让我们来看看上下文的继承关系。从图中可以看出,上下文中有两个特定的实现类,其中ContextWrapper是一个封装类,ContextImpl是一个实现类,封装类负责美容,ContextImpl负责赚钱养家。这意味着ContextWrapper类基本上是上下文方法的重新封装,其中使用的方法由ContextImpl实现。这种设计模式可以用来描述接口和实现分类。

ContextWrapper由三个子类继承,其中两个是老熟人应用程序和服务,另一个是contexThemewrapper类。作为我的名字

从继承图中还可以看出,上下文有三种类型的应用程序、服务和活动,它们的使用仍然不同。互联网上有一个图表(如下所示)总结了使用三种类型的Context

和Notes在原始形式上的区别,这意味着一些没有的地方实际上是可行的,但不推荐使用。这里没有写注释,表格中的建议会被直接采用。

从表中可以看出,Activity类的Context函数是最完整的,并且Activity类的用户界面相关选择肯定是正确的。毕竟,它直接继承了主题类上下文,并且是四个主要组件中唯一的接口。除了用户界面,应用程序类可以操作。出于这个原因,现在程序员经常开发一个全局应用程序上下文作为通用工具,但是记住它不能用于操作用户界面。

此外,该表还混合了内容提供者和广播接收者。看看上下文继承图,没有这两种商品。这是因为这两种商品在其内部方法中都有上下文。

最后,作为一个小白,我试图通过同时写它来理解上下文。如果有任何错误,请纠正我。

参考目录

1.

2. . com/Questions//What-is-context-on-Android #

3.

日本三级_香港三级_三级片网站_成人网_成人电影