前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >理解Context

理解Context

作者头像
用户3112896
发布2019-09-26 15:21:05
3990
发布2019-09-26 15:21:05
举报
文章被收录于专栏:安卓圈

知识点:

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 安卓圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档