Chinaunix首页 | 论坛 | 博客
  • 博客访问: 660310
  • 博文数量: 171
  • 博客积分: 2246
  • 博客等级: 大尉
  • 技术积分: 1574
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-31 11:45
文章分类

全部博文(171)

文章存档

2018年(3)

2017年(4)

2015年(1)

2014年(20)

2013年(57)

2012年(86)

分类: Android平台

2012-07-18 13:37:54

一个APK进程只有一个Context: 这个Context就是ApplicationContext,从Context继承过来。 
ApplicationContext可以看做是针对整个系统的全局处理接口,因为: 
1.它负责和系统服务打交道 
2.RPC通信由他通过那些XXXServiceManager和XXXService来处理。 
其他一些模块,比如Activity……


问题:

[Q&A]如何认识Android Context的作用?

答案:

Context字面意思上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过Context才能识别调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity、Service以及BroadcastReceiver。

  常规需要Context实例的方法主要有各种Service实现的类,比如说SensorManager在实例化时需要getSystemService(String)方法就必须由Context的实例执行,还有一些私有的文件系统I/O比如说openFileInput以及常用的Toast的makeText方法。
阅读(795) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~