# 安卓Context上下文对象

安卓Context上下文对象

在开发中很多地方都会用到Context,相信很多读者都是会一知半解的,那么在安卓中"上下文"是指什么意思? 首先我们要回顾下,在我们大语文中,上下文我们可以理解为语境,而在我们编程开发中,我们可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程.

一 Context 体系

Android系统的上下文对象,即在Context中,为我们开发者封装了一个这个"语境".博文拿开发项目为例,点击一个基类,鼠标放在AppCompatActivity上,查看类继承关系(快捷键:Ctrl + H ),即可看到下图这个体系.大家有做Android开发的都了解知道Activity,Service,Application都是继承自Context.

继承体系

二 Context在何时创建与使用

Context在何时创建?
  • 创建 Application(应用第一次启动时创建)
  • 创建 Activity
  • 创建 Service

共同点:创建Context时机就是在创建Context的实现类的时候.

1,当应用程序第一次启动时,Android系统都会创建一个Application Context,所有的组件都共同拥有这样一个Context对象,这个应用上下文对象贯穿整个应用进程的生命周期,为应用全局提供了功能和环境支持.
2,而创建Activity和Service组件时,系统也会给它们提供运行的上下文环境,即创建Activity实例,Service实例的Context对象.

Context的使用?

开发人员在Activity中获取Context对象时,可以直接使用this,而在匿名内部类中,就必须制定**Activity.this才可以获得该Activity的Context对象.当然,我们也可以通过getApplicationContext()方法来获取整个App的Context,但是通过getApplicationContext()方法获得的是整个应用的上下文引用,这与某个组件的上下文引用,在某些时候还是有区别使用的.

区别:
1,Application是一个长引用,Activity是短引用。
2,getApplicationContext()适用于存储那些需要反复读取的对象,比如用户的用户名和密码,应用程序的当前设置等。
3,Activity适用于当前活动窗体,比如显示一个dialog,或新建一个View,传入的context对象就应该是当前Activity,而非getApplicationContext()

三 尾言

为自己技术增值,量变引起质变.对象亦来源于生活,模式亦来源于验证的OO经验,那么请学会使用轮子,再到感受制造轮子的乐趣,你会发现原来编程那么美妙.如有错误或不当之处,请读者留言,博主好吸取经验,互相交流学习,欢迎读者斧正,不胜感激.博主邮箱593584960@qq.com

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值