getApplication()、getApplicationContext()、getBaseContext()、MainActivity.this、this、getContext()之间的区别
2016-07-30 09:13
417 查看
2016七月
30
译
分类:Android
(1756) (0)
getApplication();
getApplicationContext();
getBaseContext();
MainActivity.this;
this;
getContext();
要理解这些方法的区别,需要先理解在Android框架中,有两种类别的Context,分别是Application Context和Activity Context:
Application Context:存在于“应用”的整个生命周期,只要应用存在,Application Context就存在,并且是唯一的。当应用被销毁了,Application Context才被销毁。
Activity Context:存在于“Activity”的整个生命周期,当onDestroy()执行后,Activity Context也被销毁。
现在回到问题:
1.getApplication():虽然它返回的是Application对象,但Application类继承自Context,所以它可以用来提供Application Context;
2.getApplicationContext():返回Application Context;
3.getBaseContext():返回Activity Context;
4.MainActivity.this:表示MainActivity对象,一般用在内部类中指示外面的this,如果在内部类直接用this,指示的是内部类本身。因为MainActivity继承Activity,而Activity继承Context,所以它也可以用来提供Activity Contex;
5.this:表示当前对象;当它表示MainActivity时,也可以用来提供Activity Context,原因同上。
6.getContext():这个是View类中提供的方法,在继承了View的类中才可以调用,返回的是当前View运行在哪个Activity Context中。前面的3个方法可以在Activity中调用。
2014四月
21
译
分类:Android
(1756) (0)
getApplication();
getApplicationContext();
getBaseContext();
MainActivity.this;
this;
getContext();
要理解这些方法的区别,需要先理解在Android框架中,有两种类别的Context,分别是Application Context和Activity Context:
Application Context:存在于“应用”的整个生命周期,只要应用存在,Application Context就存在,并且是唯一的。当应用被销毁了,Application Context才被销毁。
Activity Context:存在于“Activity”的整个生命周期,当onDestroy()执行后,Activity Context也被销毁。
现在回到问题:
1.getApplication():虽然它返回的是Application对象,但Application类继承自Context,所以它可以用来提供Application Context;
2.getApplicationContext():返回Application Context;
3.getBaseContext():返回Activity Context;
4.MainActivity.this:表示MainActivity对象,一般用在内部类中指示外面的this,如果在内部类直接用this,指示的是内部类本身。因为MainActivity继承Activity,而Activity继承Context,所以它也可以用来提供Activity Contex;
5.this:表示当前对象;当它表示MainActivity时,也可以用来提供Activity Context,原因同上。
6.getContext():这个是View类中提供的方法,在继承了View的类中才可以调用,返回的是当前View运行在哪个Activity Context中。前面的3个方法可以在Activity中调用。
30
译
getApplication()、getApplicationContext()、getBaseContext()、MainActivity.this、this、getContext()之间的区别
分类:Android(1756) (0)
getApplication();
getApplicationContext();
getBaseContext();
MainActivity.this;
this;
getContext();
要理解这些方法的区别,需要先理解在Android框架中,有两种类别的Context,分别是Application Context和Activity Context:
Application Context:存在于“应用”的整个生命周期,只要应用存在,Application Context就存在,并且是唯一的。当应用被销毁了,Application Context才被销毁。
Activity Context:存在于“Activity”的整个生命周期,当onDestroy()执行后,Activity Context也被销毁。
现在回到问题:
1.getApplication():虽然它返回的是Application对象,但Application类继承自Context,所以它可以用来提供Application Context;
2.getApplicationContext():返回Application Context;
3.getBaseContext():返回Activity Context;
4.MainActivity.this:表示MainActivity对象,一般用在内部类中指示外面的this,如果在内部类直接用this,指示的是内部类本身。因为MainActivity继承Activity,而Activity继承Context,所以它也可以用来提供Activity Contex;
5.this:表示当前对象;当它表示MainActivity时,也可以用来提供Activity Context,原因同上。
6.getContext():这个是View类中提供的方法,在继承了View的类中才可以调用,返回的是当前View运行在哪个Activity Context中。前面的3个方法可以在Activity中调用。
2014四月
21
译
getApplication()、getApplicationContext()、getBaseContext()、MainActivity.this、this、getContext()之间的区别
分类:Android(1756) (0)
getApplication();
getApplicationContext();
getBaseContext();
MainActivity.this;
this;
getContext();
要理解这些方法的区别,需要先理解在Android框架中,有两种类别的Context,分别是Application Context和Activity Context:
Application Context:存在于“应用”的整个生命周期,只要应用存在,Application Context就存在,并且是唯一的。当应用被销毁了,Application Context才被销毁。
Activity Context:存在于“Activity”的整个生命周期,当onDestroy()执行后,Activity Context也被销毁。
现在回到问题:
1.getApplication():虽然它返回的是Application对象,但Application类继承自Context,所以它可以用来提供Application Context;
2.getApplicationContext():返回Application Context;
3.getBaseContext():返回Activity Context;
4.MainActivity.this:表示MainActivity对象,一般用在内部类中指示外面的this,如果在内部类直接用this,指示的是内部类本身。因为MainActivity继承Activity,而Activity继承Context,所以它也可以用来提供Activity Contex;
5.this:表示当前对象;当它表示MainActivity时,也可以用来提供Activity Context,原因同上。
6.getContext():这个是View类中提供的方法,在继承了View的类中才可以调用,返回的是当前View运行在哪个Activity Context中。前面的3个方法可以在Activity中调用。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories