SlideShare a Scribd company logo
什麼是Context
Context Structure
關係:Extends
Context介紹
• Context的三種類型
• Activity , Service , Application
Context責任
• 使用Toast、存取數據、發送廣播…等。大多
數的狀況下這三種是可以通用的。比較特
殊的狀況,EX:啟動Activity、Dialog,就必須
使用Activity Context。
Context數量
• Context數量 = Activity數量 + Service數
量 + 1(Application Context)
Application Context
• 每一個app都有自己的Application,他是繼
承System的Application,在自己的
Application封裝自己的操作。
• 這個Context是Singleton
Service Context
• User和OS的每一次interaction都是一個
Context。
• 但是Service並沒有搭配一個Layout,他所做
的事情是,在後面執行任務,而每一項任
務都需要一個Context來執行。
為什麼activity有兩個方法
Context Structure
看看Source Code吧
Activity Context
• 為什麼一個Activity會配置一個Context?
• 為什麼Activity要繼承ContextThemeWrapper?
• ContextThemeWrapper在做什麼呢?
Activity Context
• 基本上一個Activity會綁定一個Layout,
• 而每一個Layout都有不同的Theme(顏色等)
• 這也就是為什麼每一個Activity都要配一個
Context。
• 我們先來看看簡單的例子
Different Activity Context
• baseContext
• this
• Application
Different Activity Context
Different Activity Context
Different Activity Context
Different Activity Context
Context and Memory Leak
Context and Memory Leak
Context and Memory Leak
• 為什麼傳入this,baseContext會Memory Leak
傳入正確的Context是很重要的
參考資料
• https://blog.csdn.net/guolin_blog/article/deta
ils/47028975
• https://developer.android.com/index.html

More Related Content

Similar to What is context

开放源代码的全文检索Lucene
开放源代码的全文检索Lucene开放源代码的全文检索Lucene
开放源代码的全文检索Luceneyiditushe
 
掌星 移动互联网开发笔记-Vol001
掌星 移动互联网开发笔记-Vol001掌星 移动互联网开发笔记-Vol001
掌星 移动互联网开发笔记-Vol001
rainx1982
 
IOS入门分享
IOS入门分享IOS入门分享
IOS入门分享
zenyuhao
 
分布式系统日志处理调研
分布式系统日志处理调研分布式系统日志处理调研
分布式系统日志处理调研
klandor
 
系統程式 -- 第 10 章 作業系統
系統程式 -- 第 10 章 作業系統系統程式 -- 第 10 章 作業系統
系統程式 -- 第 10 章 作業系統
鍾誠 陳鍾誠
 
云计算 系统实例与研究现状
云计算 系统实例与研究现状云计算 系统实例与研究现状
云计算 系统实例与研究现状Danny AJ Lin
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构n716
 
Streaming architecture zx_dec2015
Streaming architecture zx_dec2015Streaming architecture zx_dec2015
Streaming architecture zx_dec2015
Zhenzhong Xu
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1
YI-CHING WU
 
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用
iammutex
 
Ajax设计技术
Ajax设计技术Ajax设计技术
Ajax设计技术yiditushe
 
Envrionment as a code with vagrant & chef
Envrionment as a code with vagrant & chefEnvrionment as a code with vagrant & chef
Envrionment as a code with vagrant & chef
mingjin
 
千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江
imShining @DevCamp
 
Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten TrainingLi Chen
 
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计
mysqlops
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)wangjiaz
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用yiditushe
 
Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享drewz lin
 
Sphinx 全文检索实践指南
Sphinx 全文检索实践指南Sphinx 全文检索实践指南
Sphinx 全文检索实践指南
Shaoning Pan
 

Similar to What is context (20)

开放源代码的全文检索Lucene
开放源代码的全文检索Lucene开放源代码的全文检索Lucene
开放源代码的全文检索Lucene
 
掌星 移动互联网开发笔记-Vol001
掌星 移动互联网开发笔记-Vol001掌星 移动互联网开发笔记-Vol001
掌星 移动互联网开发笔记-Vol001
 
IOS入门分享
IOS入门分享IOS入门分享
IOS入门分享
 
分布式系统日志处理调研
分布式系统日志处理调研分布式系统日志处理调研
分布式系统日志处理调研
 
系統程式 -- 第 10 章 作業系統
系統程式 -- 第 10 章 作業系統系統程式 -- 第 10 章 作業系統
系統程式 -- 第 10 章 作業系統
 
敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3
 
云计算 系统实例与研究现状
云计算 系统实例与研究现状云计算 系统实例与研究现状
云计算 系统实例与研究现状
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构
 
Streaming architecture zx_dec2015
Streaming architecture zx_dec2015Streaming architecture zx_dec2015
Streaming architecture zx_dec2015
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1
 
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用
 
Ajax设计技术
Ajax设计技术Ajax设计技术
Ajax设计技术
 
Envrionment as a code with vagrant & chef
Envrionment as a code with vagrant & chefEnvrionment as a code with vagrant & chef
Envrionment as a code with vagrant & chef
 
千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江
 
Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten Training
 
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用
 
Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享
 
Sphinx 全文检索实践指南
Sphinx 全文检索实践指南Sphinx 全文检索实践指南
Sphinx 全文检索实践指南
 

What is context

Editor's Notes

  1. 系統會透過attachBaseContext()傳送一個BaseContext給ContextWrapper,ContextWrapper所有的操作都是透過這個BaseContext的。