getApplication()、getApplicationContext()、getBaseContext()、MainActivity.this、this、getContext()之间的区别



2016 七月
30

getApplication()、getApplicationContext()、getBaseContext()、MainActivity.this、this、getContext()之间的区别

 

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()之间的区别

 

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中调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值