• android Context 上下文的几点解析


    1.首先什么是context?

    文档语焉不详,说是resource什么的,反正是没看懂,实际上可以认为它是一个指向parent对象的指针,受到那个parent对象的控制。

    2.为什么需要context?

    试想一下这个语句:

    Button myButton =newButton(this);

    这个this就是context,前面说了它指向了parent对象,那指向了哪里?为什么需要这么做?原因是Button为了能完成自己的使命(响应各种操作)就得让Android系统知道自己是属于哪个Activity的,这个信息是必须的,因为只有这样Android系统才会对其进行管理,比如响应onClick()事件,否则系统连Button是属于哪个Activity的都不知道,怎么响应呢?如果ButtoncontextActivitycontext是一样的,那么它们都是可见的,比如上面那个buttonActivity一样是可见的,它们的context指向另一个不可见的对象,也就是它们受那个不可见的对象控制,我理解为系统。

    3.Application contextActivity context

    这是两种不同的context,也是最常见的两种。第一种中context的生命周期与Application的生命周期相关的,context随着Application的销毁而销毁,第二种中的contextActivity的生命周期是相关的,但是对一个Application来说,Activity可以销毁几次,那么属于Activitycontext就会销毁多次。至于用哪种context,得看应用场景,个人感觉用Activitycontext好一点,不过也有的时候必须使用Applicationcontext

     

    4、什么时候创建Context实例 

          熟悉了Context的继承关系后,我们接下来分析应用程序在什么情况需要创建Context对象的?应用程序创建Context实例的

     

     情况有如下几种情况:

     

          1、创建Application 对象时, 而且整个App共一个Application对象

     

          2、创建Service对象时

     

          3、创建Activity对象时

     

  • 相关阅读:
    编程之美 2014资格赛 格格取数
    ios游戏开发--cocos2d学习(1)
    ios开发中常用的也是最基本的mysql语句
    无限树形结构的数据库表设计
    认真的辞职
    几种JavaScript富应用MVC MVVM框架
    javascript创建对象和属性的几种方式
    webresource.axd文件的配置及使用
    ITextSharp用来生成 PDF 的一个组件
    flexpaper 开源轻量级的在浏览器上显示各种文档的组件
  • 原文地址:https://www.cnblogs.com/ycxyyzw/p/2950919.html
Copyright © 2020-2023  润新知