您的位置:首页 > 移动开发 > Android开发

对于Context的理解

2014-04-15 20:08 435 查看
刚接触android的时候,对于Context类(上下文)特别不理解,从书上看到的对Context的描述大致如下:Context描述了应用程序环境的信息,通过它能获取应用程序的资源和类,包括一些应用级的操作,如启动一个activity,或是一个service,发送广播等等。为什么Context的作用如此强大,先看一下跟context有关的类结构关系:

Context

extends Object

Direct Subclasses(直接子类)ContextWrapper, MockContext
Indirect Subclasses(间接子类)AbstractInputMethodService, AccessibilityService, AccountAuthenticatorActivity, ActionBarActivity, Activity, ActivityGroup, AliasActivity, Application, BackupAgent,BackupAgentHelper, ContextThemeWrapper, and 23 others.(包括 service)从上面可以看到,我们熟悉的Activity,service类都属于context的子类。Context类作为一个抽象类,它定义了哪些方法呢?简单的说,它提供了一组通用的API,我举几个常见的例子如:public abstract Object getSystemService(String name);//获取系统级别服务public abstract Object startActivity(Intetn intent);//启动一个activitypublic abstract ComponentName startService(Intent intent);//启动一个service等等,其实这些方法都是定义在Context类中。那么这些方法的实现是在哪里?是在ContextImpl这个类中,它也是Context的直接子类。现在大家对于前面提到的:Context描述了应用程序环境的信息,通过它能获取应用程序的资源和类,包括一些应用级的操作,理解一些了呢?所以其实Context就是一个环境变量(描述了应用程序环境的信息)和句柄(提供各种API)的结合体。
另外补充一点,就是在android 2.0之前的版本是没有ContextImpl这个类的,之后才采用了这样的一个设计,顺便附上一张自网上看到的图。
一起学习,有错误麻烦指出。

附件:http://down.51cto.com/data/2364303
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  context android