关于安卓中context概念的理解
2014-01-02 19:12
316 查看
很多初入Android开发的网友向我们问到Context有什么作用,很多地方都用到它,这里Android123给这些新入门的网友做个简单的解释:
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方法。
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方法。
相关文章推荐
- 定义与声明的区别
- 月光微博客
- 一点心意
- 设计模式六大原则
- struct inode 和 struct file
- 2013总结
- 用递归调用进行10-2进制转换
- java 中的线程池
- cocos2d-x提示 error LNK1104: 无法打开文件“libcocos2d.lib” 的一个解决方案
- java中存储区的分类
- 【JM8.6】运动估计的几个函数分析
- 元旦作业 1~6题
- 怒写论文
- Java Map 集合类简介
- 与& 或| 异或^ 非!
- ASP.NET中linq select的用法
- samba服务器配置、任务调度
- crontab命令的使用
- utf8判断
- 巧用exec语句修改string.Template的delimiter