zoukankan      html  css  js  c++  java
  • 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对象时

     

  • 相关阅读:
    jQuery选择器总结
    ASP.NET MVC Controller向View传值的几种方式
    C# 实现屏幕截屏
    C#方法参数传递-同时使用ref和out关键字
    C#委托的异步调用
    C#导出Excel总结
    JQuery Form AjaxSubmit(options)在Asp.net中的应用注意事项
    Ubuntu16.04 Tomcat9的安装
    ubuntu16.04 安装 eclipse
    pychram最新注册码
  • 原文地址:https://www.cnblogs.com/ycxyyzw/p/2950919.html
Copyright © 2011-2022 走看看