上下文在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()
为什么这也指当前对象,因此我对this
和context
感到困惑帮助我研究这个,参考分享我..
【问题讨论】:
我已经读过那个,但没有得到那个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中的重要性[重复]的主要内容,如果未能解决你的问题,请参考以下文章