Context是一個抽象類,定義了訪問應(yīng)用環(huán)境全局信息的接口山上;包括訪問應(yīng)用程序資源眼耀、打開Activity(startActivity())、啟動Service(startService())佩憾、發(fā)送廣播哮伟,文件讀寫等。Activity妄帘,Service以及Application均繼承自Context楞黄,所以我們經(jīng)常使用的startActivity(),getResource()抡驼,getSharedPreference()鬼廓,getExternalFilesDir(),deleteDatabase()等等方法都來自于Context致盟。UML類圖如下所示:
Context
由上圖可知碎税,Activity,Service馏锡,Application并沒有直接繼承Context雷蹂,而是繼承自ContextWrapper。ContextWrapper是Context的包裝類杯道,內(nèi)部包含一個Context的引用匪煌,指向Context的具體實現(xiàn)類ContextImpl。ContextWrapper內(nèi)部的所有方法直接調(diào)用ContextImpl對應(yīng)的方法。