zoukankan      html  css  js  c++  java
  • 浅议 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的一点愚见。

  • 相关阅读:
    剑指offer面试题15:倒数第k个结点
    Leetcode 最小二叉树深度和删除数组重复元素
    剑指offer面试题13:O(1)删除链表结点
    驰骋工作流引擎Silverlight版本的流程解析执行器预计在6月份发布
    功能新增:在流程属性的增加了一个重新生成流成标题的功能.
    驰骋工作流引擎LigerUI版本发布说明书
    驰骋工作流引擎虚拟机文件使用说明书
    节点属性”谁执行它”的属性解释
    如何利用ccform自定义表单来增加自己的控件,关于Sys_FrmEle表结构与数据存储设计?
    使用开源的驰骋表单设计器设计表单案例演示
  • 原文地址:https://www.cnblogs.com/manuosex/p/3209587.html
Copyright © 2011-2022 走看看