Android中的Context

前言

在Android开发中,当我们要创建或启动四大组件时,不能通过简单的new关键字实现,而是要通过他们的上下文环境,也就是我们要讨论的Context。

Android的应用模型是基于组件的应用设计模式,而组件的运行需要一个完整的Android工程环境,在这个环境下,Activity、Service等系统组件才能正常工作,而这个上下文环境,也就是我们的Context。因此,Java中简单的new一个对象并不适用于Android中组件的开发。

为什么说只是不适用于组件的开发?我们会发现,开发中的某些内容,依然是可以使用Java的new关键字创建的,比如xml中的button就可以通过new Button()来获取实例。

此处我们举一个现实中的例子:一部电影摄影时,我们的导演(系统)事先确认了主演(四大组件),而光有主演还不够,要在镜头(Context)之下,我们的演员才能施展拳脚;同时只有主演还不够,还会有一些配角,他们正如我前文提到的Button,只需要new出来就好了。

而回到开发中的例子,比如我们在和朋友聊天时,此时的context就是聊天界面和相关数据的传输(如我们发送的消息、收到对方发送的消息),他在加载资源、启动Activity、获取系统服务、创建View等中都有一腿,不愧为上下文的称号。

具体到代码中context的实现,官方对其的注释如下:

"Interface to global information about an application environment.  This is an abstract class whose implementation is provided by the Android system.  It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc."

自翻:

Context是对于一个应用环境的全局信息接口。这是一个由安卓系统实现的抽象类。它允许访问应用程序指定的资源和类,以及对应用级别操作的调用,如启动Activity、Broadcast和接收Intent等。

有抽象类就会有他的实现类,而继承Context的子类有两个:ContextImpl和ContextWrapper。在Mac中的Android Studio中可以使用快捷键control+H查看某个类的继承关系。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值