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相关类的继承关系

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