Context作用域
雖然Context神通廣大呆抑,但并不是隨便拿到一個(gè)Context實(shí)例就可以為所欲為,它的使用還是有一些規(guī)則限制的导盅。由于Context的具體實(shí)例是由ContextImpl類去實(shí)現(xiàn)的素征,因此在絕大多數(shù)場(chǎng)景下,Activity讥电、Service和Application這三種類型的Context都是可以通用的。出于安全原因的考慮轧抗,Android是不允許Activity或Dialog憑空出現(xiàn)的允趟,一個(gè)Activity的啟動(dòng)必須要建立在另一個(gè)Activity的基礎(chǔ)之上,也就是以此形成的返回棧鸦致。而Dialog則必須在一個(gè)Activity上面彈出(除非是System Alert類型的Dialog),因此在這種場(chǎng)景下涣楷,我們只能使用Activity類型的Context分唾,否則將會(huì)出錯(cuò)。
啟動(dòng)Activity狮斗、彈出Dialog绽乔、inflate 用Activity的Context。
其他情況都可以碳褒,建議用Application的Context
![](https://user-gold-cdn.xitu.io/2016/11/29/5de752690d9174d2d2d030bd89e345ae.jpg)