• 浅议 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的一点愚见。

  • 相关阅读:
    DOM操作CSS
    DOM操作html
    Zendstudio 9.0.2 安装Aptana3 并且配置 jQuery
    Bootstrap
    Emmet:HTML/CSS代码快速编写神器
    用Chrome浏览器模拟手机,android,iphone,ipad访问网站
    jQuery中json对象的复制(数组及对象) .
    json数据处理技巧(字段带空格、增加字段)
    jQuery提升性能技巧及个人总结 .
    不错的jQuery图表插件 .
  • 原文地址:https://www.cnblogs.com/manuosex/p/3209587.html
Copyright © 2020-2023  润新知