Acviticy.this 和 getApplicationContext()的区别

 

用AlertDialog 举例

 

AlertDialog对象是依赖于一个View的,而View是和一个Activity对应的,在Activity销毁的时候它也就销毁了,不会再存在。Activity.this,是这个语句所在的Activity的this,是这个Activity 的上下文。而this.getApplicationContext()取的是这个应用程序的Context。如果传入this.getApplicationContext(),就表示它的生命周期是整个应用程序,这显然超过了它的生命周期了。

 

 

getApplicationContext() 返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁
Activity.this的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁

getBaseContext()  返回由构造函数指定或setBaseContext()设置的上下文

posted @ 2015-08-04 15:40  马小豆包  阅读(328)  评论(0编辑  收藏  举报