前言
Android程序不同于Java程序(只需要 main()
函數(shù)就可以運(yùn)行)盈罐,而是需要一個完整的Android工程環(huán)境藤乙,這個環(huán)境下我們有像 Activity
臭挽,Service
潜叛,BroadcastReceiver
遭笋, ContentProvider
等系統(tǒng)軟件坝冕。每個組件都要有各自的上下文環(huán)境,也就是 Context
——維持Android程序中各組件能夠正常工作的核心功能類瓦呼。
Context 類型
簡單來說喂窟,
Context
一共有三種類型:Application
,Service
央串,Activity
磨澡。出于安全原因的考慮,Android是不允許Activity或Dialog憑空出現(xiàn)的质和,一個Activity的啟動必須要建立在另一個Activity的基礎(chǔ)之上稳摄,也就是以此形成的返回棧。而Dialog則必須在一個Activity上面彈出(除非是System Alert類型的Dialog)饲宿。
因此在這種場景下厦酬,我們只能使用Activity類型的Context,否則將會出錯瘫想。
Context 數(shù)量
Context數(shù)量 = Activity數(shù)量 + Service數(shù)量 + 1
上面的1代表著Application的數(shù)量仗阅,因?yàn)橐粋€應(yīng)用程序中可以有多個Activity和多個Service,但是只能有一個Application殿托。