android中的context是起啥作用的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中的context是起啥作用的?相关的知识,希望对你有一定的参考价值。

我的问题是这样的:
许多函数调用的时候都需要提供context,而activity也是继承自context的,很多时候可以直接传一个this指针。那么这个context类起了怎样的作用?为什么要这些时候传context过去,这样做是因为android使用了怎样的机制?

  当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context。

Context是一个抽象基类,我们通过它访问当前包的资源(getResources、getAssets)和启动其他组件(Activity、Service、Broadcast)以及得到各种服务(getSystemService),当然,通过Context能得到的不仅仅只有上述这些内容。对Context的理解可以来说:Context提供了一个应用的运行环境,在Context的大环境里,应用才可以访问资源,才能完成和其他组件、服务的交互,Context定义了一套基本的功能接口,可以理解为一套规范,而Activity和Service是实现这套规范的子类,这么说也许并不准确,因为这套规范实际是被ContextImpl类统一实现的,Activity和Service只是继承并有选择性地重写了某些规范的实现。


  activity继承关系


  

Service和Application


可以看出几个组件都继承于Context

  一个应用中Context的数量等于Activity的个数 + Service的个数 + 1,这个1为Application

参考技术A Context字面意思是上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄。很多方法需要通过 Context才能识别调用者的实例:比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity以及Service。

Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activity,broadcasting和接收intents。本回答被提问者和网友采纳

手机中的Menu键、Home键、返回键和搜索按键分别是起啥作用的

比如像摩托罗拉的Android手机
摩托罗拉xt711支持手机电视不

参考技术A Menu是菜单键,就是点击后出来相关的菜单咯;
Home是主页键,点击后回到主页面;
返回键顾名思义就是返回上一次的页面或者上一次的操作;
搜索键就是点击出来搜索的框框,便于输入内容进行查找。
这些使用方法在随机的手册里都有的,耐心看看就知道啦。本回答被提问者采纳
参考技术B 嗯,给分,解释

以上是关于android中的context是起啥作用的?的主要内容,如果未能解决你的问题,请参考以下文章

jaxb中注解@XmlElement中的属性required 等于true或fasle都是起啥作用

在html代码中“....”是起啥作用的?

python当中的eval()函数是起啥作用?

mysql的主键是自动增长的,oracle的主键是起啥作用的

phpcms v9 后台的模块->表单向导->模块配置 是起啥作用的,有设置两次提交间隔时间 这个怎么用?

九九乘法表C源程序的for循环是起啥作用