getApplication、getBaseContext、this之间的区别

转自:http://blog.youkuaiyun.com/woaieillen/article/details/10234807,这里做个总结;


在大量的android代码中,我看到如下的写法:

public class MyActivity extends Activity { 
    public void method() { 
       mContext = this;    // since Activity extends Context 
       mContext = getApplicationContext(); 
       mContext = getBaseContext(); 
    } 
}


注:

1、在一个普通的Android应用程序中,你通常有两种Context:Activity和Application。不要使用getBaseContext(),只使用你有的Context。

2、不同点:基本上来说呢,应用程序Context是和应用程序关联的,并且在程序的生命周期内,总是一样的。但是,活动Context是关联在某个活动上的,随着Activity的销毁(比如横竖屏切换等情况),这个Context也会被销毁N多次。

所以,总体来说,似乎最好在可能的情况下使用全局应用程序Context。

3、使用应用程序Context给进度条对话框的时候,出现了“window token errors”的错误。所以,使用活动Context,而不是应用程序Context。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值