zoukankan      html  css  js  c++  java
  • 理解上下文Context

    --摘自《Android进阶解密》

    知识点:

    1.Context的使用场景

      1)使用Context调用方法,比如启动Activity、访问资源、调用系统级服务等

      2)调用方法时传入Context,比如弹出Toast、创建Dialog等

    2.Context的关联类

    3.Context的关联采用了装饰模式,主要有以下优点

      1)使用者(比如Service)能够更方便地使用Context

      2)如果ContextImpl发生了变化,它的装饰类ContextWrapper不需要做任何修改

      3)ContextImpl的实现不会暴露给使用者,使用者也不必关心ContextImpl的实现

      4)通过组合而非继承的方式,拓展ContextImpl的功能,在运行时选择不同的装饰类,实现不同的功能

    *Application Context创建过程*

    1)在一个应用程序启动完成后,应用程序就会有一个全局的Application Context

    2)ActivityClientRecord的成员变量packageInfo是LoadedApk类型的

    3)Application的attach方法的作用就是使Application可以使用Context的方法,这样Application才可以用来代表Application Context

    *Activity的Context创建过程*

    1)Activity的Context会在Activity的启动过程中被创建

    2)PhoneWindow代表应用程序窗口。PhoneWindow在运行中会间接触发很多事件,比如点击、菜单弹出、屏幕焦点变化等事件,这些事件需要转发给与PhoneWindow关联的Activity,转发操作通过Window.Callback接口实现,Activity实现了这个接口

    *Service的Context创建过程*

    Service的Context创建过程与Activity的Context创建过程类似,是在Service的启动过程中被创建的

    欢迎关注我的微信公众号:安卓圈

  • 相关阅读:
    DropBoxUtil
    mtk camera faq
    android onInterceptTouchEvent和onTouchEvent的执行关系
    高通 camera open流程
    android 消息机制
    hierarchyviewer工具,android 布局分析
    关于屏幕的几个概念
    repo 使用
    launcher 壁纸相关
    launcher 点击和滑动屏幕过程分析
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/10180429.html
Copyright © 2011-2022 走看看