Android之Context

context理解

官方文档的解释是:Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activitybroadcasting和接收intents

常用的Context的子类是ActivityService,我们可以将context理解为类似于Window下的句柄,但Window下的句柄,每个资源都可以是一个句柄,比如一个控件、图片等等,但在androidcontext只能是ActivityService等这一类。如果要在Activity中新建一个dialog,在这个dialog中要添加一个控件,要给这个控件传递一个context参数,只能是Activity的实例,不能是这dialog,因为控件的事件需要activity来处理。所以context是一个统领一些资源(应用程序环境变量等)的上下文(理解为句柄)。

我们在一个activity中有如下代码:

Toast.makeText(null, "", Toast.LENGTH_LONG).show();

那么程序运行时会有空指针异常,就是因为第一个参数Context类型,我们传了null,这样运行到这段代码时,系统不知道activity的环境变量,所以就会出错。

posted @ 2012-12-11 11:53  JD.Tang  阅读(146)  评论(0编辑  收藏  举报