参考博文:http://www.cnblogs.com/wenjiang/archive/2012/10/15/2724923.html
Context的类型有两种,一种是Activity-Context,另一种是Application-Activity,这两种的区别就在于它们的生命周期不一样,一个是随着Activity的销毁而销毁,另一个是伴随整个Application。
Context作为一个抽象的基类(??待验证),它的实现子类有三种:Application、Activity和Service(估计这么说,暂时不管ContextWrapper等类)。
private Context mContext;
mContext = FavoritesSongActivity.this;
intent.setClass(mContext, LocalActivity.class);
btn_local.setOnClickListener(this);
根据打印出来的哈希值我们可以明显看出这三者是一样的,都是指这个LocalActivity中唯一的上下文Context,而这个上下文Context是与整个应用程序的上下文Context是不一样的,他们的生命周期是不同的,Activity中的上下文Context是随着活动的产生而产生,随其消亡而消亡,但是整个应用程序的上下文Context这是伴随着整个应用程序而存在的,无论活动的存活与否都影响不到这个上下文。
获取整个应用程序上下文可通过this.getApplicationContext()来获取。
记得还要在manifast里把application的name属性改成你的这个类名~(此句摘自网络,待验证);
获取当前活动的上下文可以通过在一个Activity中使用this就可以获得当前Activity的Context。
Log.d(TAG, "mContext = " + mContext.hashCode());
Log.d(TAG, "this= " + this.hashCode());
Log.d(TAG, " LocalActivity .this= " + LocalActivity .this.hashCode());
Log.d(TAG, "mContext = " + mContext.hashCode());
Log.d(TAG, "this= " + this.hashCode());
Log.d(TAG, " LocalActivity .this= " + LocalActivity .this.hashCode());