Context在android中的重要性

时间:2012-08-13 13:34:02

标签: android

  

可能重复:
  What is Context in Android?

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

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

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

@Override
public void onClick(View view) {

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

我们不能在this使用getApplicationContext()我的意思是this为什么这也引用了当前的对象,因此我对context和{{1}}帮助我学习感到困惑这个,参考分享给我..

2 个答案:

答案 0 :(得分:1)

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

android.content.Context
   ↳    android.content.ContextWrapper
       ↳    android.view.ContextThemeWrapper
           ↳    android.app.Activity

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

答案 1 :(得分:1)

当您将this传递给方法时,您的意思是this引用是Context的实例,因此如果您在Activity中,则可以传递此而不是Context。但是当你在匿名课堂时:

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

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

MyActivity.this