转自: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。