java学习教程-android系统中的上下文对象context的理解

java学习教程-android系统中的上下文对象context的理解

ID:11295726

大小:267.56 KB

页数:11页

时间:2018-07-11

java学习教程-android系统中的上下文对象context的理解_第1页
java学习教程-android系统中的上下文对象context的理解_第2页
java学习教程-android系统中的上下文对象context的理解_第3页
java学习教程-android系统中的上下文对象context的理解_第4页
java学习教程-android系统中的上下文对象context的理解_第5页
资源描述:

《java学习教程-android系统中的上下文对象context的理解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Context类,我们时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法。但是不懂Context的原理、类结构关系。Contenxt到底是什么,一个应用程序App中存在多少个Context实例对象呢?在这里我们就来了解一下Context。在API中Context的解释是:Interfacetoglobalinformationaboutanapplicationenvironment.Thisisanabstractclasswhoseimplementationisprovidedby

2、theAndroidsystem.Itallowsaccesstoapplication-specificresourcesandclasses,aswellasup-callsforapplication-leveloperationssuchaslaunchingactivities,broadcastingandreceivingintents,etc.从上可知以下三点,即:1、它描述的是一个应用程序环境的信息,即上下文。2、该类是一个抽象(abstractclass)类,Android提供了该抽象类的具体实现类3、通过它我们可以获取应用程序的资源和类,也包括

3、一些应用级别操作,例如:启动一个Activity,发送广播,接受Intent信息等。从以上分析可以看出,Context就是一个对APK包无所不知的大管家,大家需要什么,直接问它就可以了。一、Context类的相关类的继承关系磨砺营IT教育版权所有可以看到Activity、Service、Application都是Context的子类;也就是说,Android系统的角度来理解:Context是一个场景,代表与操作系统的交互的一种过程。从程序的角度上来理解:Context是个抽象类,而Activity、Service、Application等都是该类的一个实现。在仔细看

4、一下上图:Activity、Service、Application都是继承自ContextWrapper,而ContextWrapper内部会包含一个basecontext,由这个basecontext去实现了绝大多数的方法。另外,View与Context(或Activity)的关系类似于明星与经纪人的关系,所以创建View时,必须明确指定其Context(即经纪人或大管家),否则View就成不了明星。二、Context的关键函数以及各子类的特征1.Context是上下文的最基本的类;2.ContextWrapper是对Context类的一种封装,它的构造函数包含了

5、一个真正的Context引用,即ContextImpl对象;3.ContextThemeWrapper类内部包含了主题(Theme)相关的接口,即android:theme属性指定的。只有Activity需要主题,Service不需要主题,所以Service直接继承于ContextWrapper类以下是Context的常用方法介绍:publicabstractclassContext{磨砺营IT教育版权所有//获取应用程序包的AssetManager实例publicabstractAssetManagergetAssets();//获取应用程序包的Resources

6、实例publicabstractResourcesgetResources();//获取PackageManager实例,以查看全局package信息publicabstractPackageManagergetPackageManager();//获取应用程序包的ContentResolver实例publicabstractContentResolvergetContentResolver();//它返回当前进程的主线程的Looper,此线程分发调用给应用组件(activities,services等)publicabstractLoopergetMainLoop

7、er();//返回当前进程的单实例全局Application对象的ContextpublicabstractContextgetApplicationContext();//从string表中获取本地化的、格式化的字符序列publicfinalCharSequencegetText(intresId){returngetResources().getText(resId);}//从string表中获取本地化的字符串publicfinalStringgetString(intresId){returngetResources().getString(resId);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。