Context在android中的重要性

importance of Context in android

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What is Context in Android?

我在Android中读取应用程序/对象的当前状态的上下文

1
2
   Intent intent=new Intent(this,SecondaryActivity.class);
   startActivity(intent);

我们可以用getApplicationContext()代替this。但在一个

1
2
3
4
5
@Override
public void onClick(View view) {

Toast.makeText(getApplicationContext(),"Hai",Toast.LENGTH_LONG).show();
}

这里我们不能用this,我的意思是在getApplicationContext()中,为什么这也指的是当前的对象,所以我对thiscontext很困惑,帮助我研究这个,一个参考分享我。


当您将this传递给方法时,您的意思是this引用是Context的一个实例,因此如果您在活动中,可以传递这个实例而不是上下文。但是当你在匿名课堂上时:

1
2
3
4
5
button.setOnClickListener(new OnClickListener(){
     @Override
     public void onClick(){
         //here this is a reference to OnClickListener instance
     }

要在onClick方法中传递Context,可以编写

1
MyActivity.this


活动是上下文的子类,因此所有Activity对象也是Context对象:

1
2
3
4
android.content.Context
   ?    android.content.ContextWrapper
       ?    android.view.ContextThemeWrapper
           ?    android.app.Activity

因此,如果您不能使用this比它意味着this不是Context类或其子类的实例。