Android內核之Context

Context是什麼?

一個Context意味着一個場景,一個場景就是用戶和操作系統交互的一個過程,比如當你打電話時,場景包括電話程序對應的界面,以及隱藏在界面後的數據;當你看短信界面時,場景包括短信界面,以及隱藏在背後的數據.
Activity是基於Context,而Service類也是基於Context。Activity除了基於Context類外,還實現了一些其他重要接口,從設計的角度來看,interface僅僅是某些功能而extends纔是類的本質,即Activity的本質是一個Context,其所實現的其他接口只是爲了擴充Context的功能而已,擴充後的類稱爲一個Activity或者Service。
Activity中包含很多方法特別的方法,比如onCreate(),onPause(),onStart()等方法,這些只有Activity纔有的,那麼就可以提出真正意義上的場景類,假設命名爲Task,同時假設Context類不是一個abstract類,而是一個interface,那麼Task類就會變成這個樣子

class Task implements Activity,Context,.....

一個應用中包含多少個Context對象
在以往的應用程序開發中,經常會調用Context的一些方法,這些方法看起來似乎會返回一些全局的對象,而不僅僅是某個Activity,一個應用程序到底有多少個Context對象呢?比如,Context.getResource()返回該應用程序所對應的Resources類對象,無論從哪個Activity中調用,都會返回同一個Resources對象.
這裏可以明確的是:
- 一個Activity就是一個場景(Context),一個Service也是一個場景,所以,應用程序中有多少個Activity或者Service,就會有多少個Context對象
- getResource()等方法的確返回的是同一個全局對象.至於這是如何實現的

Context相關類的繼承關係

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章