getApplication、getBaseContext、this之间的区别

来源:互联网 发布:成志网络 编辑:程序博客网 时间:2024/06/10 11:33

转自:http://blog.csdn.net/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。



0 0