当前位置: 首页 > 科技观察

不懂Context,怎么能做Android开发呢?

时间:2023-03-16 17:05:49 科技观察

ActivitymActivity=newActivity()作为Android开发者,不知道大家有没有想过这个问题。Activity可以是新的吗?Android应用程序开发使用JAVA语言,Activity本质上是一个对象。有什么问题?估计很多人都解释不清楚。Android程序不像Java程序。只需创建一个类并编写一个main()方法来运行它。Android应用程序模型是一种基于组件的应用程序设计模式。组件的运行需要完整的Android工程环境。在这个环境下,Activity、Service等系统组件可以正常工作,而这些组件不能使用普通的Java对象创建方式,new可以创建实例,但是有自己的context,也就是我们这里要讨论的Context。可以说Context是Android程序中维持各个组件正常运行的核心功能类。什么是语境?Context的中文翻译是:上下文;把它理解为上下文,在程序中,我们可以把它理解为当前对象在程序中所处的一个环境,一个与系统交互的过程。比如在微信聊天中,此时的“环境”指的是聊天界面以及相关的数据请求和传输。Context必须参与加载资源、启动Activity、获取系统服务、创建View等操作。那么上下文到底是什么?Activity是一个Context,Service也是一个Context。Android程序员将“场景”抽象到Context类中。他们认为用户和操作系统的每一次交互都是一个场景,比如打电话或者发短信。这些都是有界面的场景,还有一些没有界面的场景,比如后台运行的服务。一个应用可以认为是一个工作环境,在这个环境中,用户会切换到不同的场景,就像前台秘书,她可能需要接待客人、打印文件、接听客户电话,这些都叫做不同的场景,前台秘书可以称为应用程序。如何形象地理解Context上面的概念采用通俗的理解方式,将Context理解为“上下文”或“场景”。如果还是觉得很抽象,很难理解。这里我打个比方可能不太恰当,希望能帮助大家理解:一个Android应用可以理解为一部电影或者电视剧,Activity、Service、BroadcastReceiver、ContentProvider这四大组件就像是这部剧的四位主角:胡歌、霍建华、诗诗、baby。他们是剧组(系统)一开始就定下来的,整部剧都是由这四位主角牵头的,所以这四位主角不可能随便随便一个人(新对象)在大街上演的。有了演员,当然要有摄影机来拍摄。他们必须用镜头(Context)把戏传递给观众。这对应于四大组件(四个主角)必须在Context环境(相机镜头)中工作。至于Button、TextView、LinearLayout,这些控件在这出戏中就像是配角或群众演员。他们显然不会那么多地重用它们。任何路人A和B都可以玩(可以新建一个对象),但是他们也必须要面对镜头(工作在Context环境下),所以ButtonmButton=newButton(Context)就可以了。说的不太对,不过还是比较容易理解的,希望对你有帮助。源代码中的上下文/***关于应用程序环境的全局信息的接口。这是*一个抽象类,其实现由*Android系统提供。它*允许访问特定于应用程序的资源和类,以及*向上调用应用程序级别的操作,例如启动活动、*广播和接收意图等*/公共抽象类上下文{/***文件创建模式:只能通过调用访问应用程序,其中创建的默认文件模式(orallapplications共享*sameuserID)。*@see#MODE_WORLD_READABLE*