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的启动过程中被创建的

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

  • 相关阅读:
    小团队Git协作管理
    android用MediaCodeC将opengl绘制内容录制为一个mp4
    非对称加密算法RSA 学习
    .obj 和 .mtl格式详解
    “m3u8格式简析”与“视频秒开优化”
    Jenkins Android打包(Mac平台)
    java引用Arcface,实现人脸识别(demo)
    ArcFace Demo [Android]
    C# ArcFace 免费人脸识别 2.0 demo
    [Windows][C#][.NET][WPF]基于ArcFace2.0+红外双目摄像头的活体检测
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/10180429.html
Copyright © 2011-2022 走看看