
Context字面意思是上下文,位于framework package的androidcontentContext中,其实该类为LONG型,类似Win32中的Handle句柄。很多方法需要通过 Context才能识别调用者的实例:比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityNamethis来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity以及Service。
Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的 *** 作,如启动Activity,broadcasting和接收intents。
当我们访问当前应用的资源,启动一个新的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
官方文档:Context 旨在共享一个组件树内可被视为 “全局” 的数据,例如当前经过身份验证的用户,主题或首选语言等。
下面是一个简单的上下文使用实例:最外层组件一个color,需要传递给Title组件和Content组件(根组件,绕过子组件,传给孙组件),如下图
基本组件结构如下:
Header和Main
Title和Content
分一下几步:
这样传递过来,Title和Content就拿到thiscontext对象,里面包含color属性,则能在Title和Content中使用了
通过以上,就绕过Header和Main,直接将根节点的属性传递到了孙组件Title和Content里面,这样子组件谁想要谁接收这个属性就行了就行了。
比如在Content组件, 注意:这个属性是根节点的状态,状态是自能自己改的。所以我们需要在根组件,也就是HomePage定义一个个方法,谁需要改,就把这个方法当属性传给谁。
HomePage:
接下来在需要改变这个属性子组件接受这个方法:并在事件中调用context的方法
以上就是关于android context是什么全部的内容,包括:android context是什么、android中的context是起什么作用的、React中的数据传递----上下文(Context)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)