浅议 android下的context
android学习中,最开始学习的一个类是activities,你是否知道他与context之间 的关系,我们经常用startactivities来唤起一个activities他的定义有在哪里了,他是否与context有何种千丝万缕的联系。
凡是学习android的人,学习过java的人应当对context应该都不陌生,context不就是所谓的上下文对象吗?但具体何为context对象了,相信大多数人不是特别的清楚了。我这里就举生活中的一个例子。 锄头是用来干吗的了,这不是一句废话吗?是用来干活的了,但是你见过锄头在田地中自主的干活吗?那是碰见鬼了,锄头必须放在手这个外力对象中,才能由自在的干活。我这里就把锄头理解成一个相关的android中的,java中的lei,而context就好比人的手来盛放锄头这个类的容器。这样一描述,你是否理解了,context就是盛放类的容器。也就是所说的句柄。
context在整个android的体系的架构中是整么样,他继承与谁,他又是谁的父类了,我们打开开发文档来看看他的继承的关系。
java.lang.Object
↳ android.content.Context
Known Direct Subclasses
ContextWrapper, MockContext
ContextWrapper Proxying implementation of Context that simply delegates all of its calls to another Context.
MockContext A mock Context class.
Known Indirect Subclasses
AbstractInputMethodService, AccessibilityService, AccountAuthenticatorActivity, Activity, ActivityGroup, AliasActivity, Application, BackupAgent, BackupAgentHelper, ContextThemeWrapper, DreamService, ExpandableListActivity, and 16 others
由以上文档我们清晰是看到了, 所谓activities和application这些android中大名鼎鼎类都是继承与他,他是object这个java祖宗类的一级之类,由此,我可以大胆推测出来那些像startactivities和startservices的 方法都应该是在这里定义的,不信吧!打开eclipse时,来阅读他的源代码。如图所示:
这个方法又是怎么实现的了,这个方法一定是在其相应的子类中实现的了。那么他又是怎么回事了?有图有真相。
这个startactivity 是在其activity实现了,他交给了一个startactivitiesforresult中方法来执行,他具体执行是交给minstrumentation来执行的,这是一个开关变量,他也是在context是定义的在由此调用native的源代码。这就是我对context的一点愚见。
文章最早发布于我的微信公众号 Android_De_Home 中,欢迎大家扫描下面二维码关注微信公众获取更多知识内容。
相关文章
- android移动点餐系统内容和要求,基于Android云计算的移动点餐系统
- android 的hook技术,Android Native Hook技术(一)
- android-短信验证功能,Android实现获取短信验证码的功能以及自定义GUI短信验证详解…
- android 验证码短信验证码,Android短信验证码倒计时验证的2种常用方式
- Android ListView 的简单用法
- android系统中toast是什么_Android个人资料简单布局
- 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动过程 | 静态代理 )
- 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | AMS 启动前使用动态代理替换掉插件 Activity 类 )
- 【Android 逆向】x86 汇编 ( 使用 IDA 解析 x86 架构的动态库文件 | x86 汇编语言分析 )
- 【错误记录】Android 应用安装后出现两个启动图标 ( 排查应用及依赖库中配置了 android.intent.category.LAUNCHER 的 Activity )
- 【Android NDK 开发】CMake 中查找链接 Android 自带动态库位置说明 ( ndk-bundleplatformsandroid-29arch-armusrlib )
- Android控制文字水平间距android:letterSpacing详解手机开发
- Android开发学习总结(五)——Android应用目录结构分析详解手机开发
- [android] 采用aidl绑定远程服务详解手机开发
- Android ORM 框架之 greenDAO详解手机开发
- Android中android:visibility的3中属性的剖析详解手机开发
- Perl登陆Android
- Android系统中MySQL数据库连接实现(安卓mysql连接)
- 谷歌 Android Studio Arctic Fox (2020.3.1) 稳定版正式发布,支持苹果 M1 Mac
- 永诺推出YN455无反微4/3相机新品:5英寸Android触屏 售3888元
- android调用webservice(cxf)实例应用详解
- android获取视频,图片缩略图的具体实现
- android获取当前手机号示例程序
- android基础教程之context使用详解