Android学习 Context
2014-12-31 17:51
176 查看
参考自:http://www.cppblog.com/life02/archive/2012/03/19/168328.aspx 1.概述 什么是Context?Context字面意思上下文,很多方法需要通过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方法。 2.SDK中位置 java.lang.Object | |
↳ | android.content.Context 直接子类有:ContextWrapper, MockContext 间接子类有:Activity、Service、BroadcastReceiver等 由于Activity Service等是Context的子类,因此获取的context类型除了为Context类型,也可以为Activity 、Service类型,如Activity mContext,(即多态,父类对象指向子类引用) 3.获取Context的几种方法 a)Application,获取当前整个Application的context Context context = getApplicationContext(); b)Activity,获取当前运行的activity的context Context context = XXXActivity.this或直接this c)Fragment,获取context Context context = getActivity(); |
相关文章推荐
- Android学习札记三:初涉Service(1)之Context.startService()与Context.bindService()区别(转)
- Android Context学习
- Android学习总结三:Context的使用
- Android学习之App调试内存泄露之Context篇(下)
- Android学习系列(37)--App调试内存泄露之Context篇(下)
- Android学习札记三:初涉Service(1)之Context.startService()与Context.bindService()区别
- Android-获取全局Context的技巧-android学习之旅(68)
- Android学习之Context
- android学习—— context 和 getApplicationContext()
- Android-获取全局Context的技巧-android学习之旅(68)
- android学习—— context 和 getApplicationContext()
- Android学习系列(36)--App调试内存泄露之Context篇(上)
- android学习—— context 和 getApplicationContext()
- android学习—— context 和 getApplicationContext()
- android学习—— context 和 getApplicationContext()
- android学习—— context 和 getApplicationContext()
- android学习—— context 和 getApplicationContext()
- android学习—— context 和 getApplicationContext()
- android学习—— context 和 getApplicationContext()
- Android-获取全局Context的技巧-android学习之旅(68)