上下文在android中的重要性[重复]

Posted

技术标签:

【中文标题】上下文在android中的重要性[重复]【英文标题】:importance of Context in android [duplicate] 【发布时间】:2012-08-09 17:50:32 【问题描述】:

可能重复:What is Context in android?

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

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

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

@Override
public void onClick(View view) 

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

我们不能在这里使用this 我的意思是getApplicationContext() 为什么这也指当前对象,因此我对thiscontext 感到困惑帮助我研究这个,参考分享我..

【问题讨论】:

我已经读过那个,但没有得到那个qn的原因 【参考方案1】:

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

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

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

MyActivity.this

【讨论】:

MyActivity 类型的封闭实例在范围内不可访问:MyActivity.this MyActivity 应替换为您的活动类名称。 哦,我忘了,你说得对,谢谢【参考方案2】:

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

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

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

【讨论】:

以上是关于上下文在android中的重要性[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android中的“上下文”是啥意思? [复制]

什么是 Android 上下文以及为什么需要它 [重复]

Android:片段无法转换为上下文[重复]

Android:调用 Activity 时应用程序关闭。意图,上下文,字符串[重复]

在 Android 上下载文本文件 [重复]

Android Sqlite插入空对象引用[重复]