我对我们应该在哪里使用感到困惑
this,
className.this,
context,
getBaseContext
就像在 1 中使用这个:
Intent i = new Intent(this, secondClass.class);
2:
Toast.makeText(className.this,"",...).show;
为什么我们在这里不使用上下文,而剩下的其他人呢?
我对我们应该在哪里使用感到困惑
this,
className.this,
context,
getBaseContext
就像在 1 中使用这个:
Intent i = new Intent(this, secondClass.class);
2:
Toast.makeText(className.this,"",...).show;
为什么我们在这里不使用上下文,而剩下的其他人呢?
this 和 className.this 没有太大区别。
'this' 的意思是“使用这个对象”,所以 className.this 应该类似于“使用这个对象作为 className 类型的对象”。我看到两者都以相同的方式使用:如果您想传递当前对象的访问权限,我不确定这一点,但也许 className.this 还包括尝试将“this”转换为类 className(如果您尝试在 className2 而不是 className 的对象中使用 className.this)
所以一般来说,下面例子中的方法 thisTest1 和 2 会导致相同的结果:
class MyActivity extends Activity {
void thisTest1() {
startActivity(new Intent(this, secondClass.class));
}
void thisTest2() {
startActivity(new Intent(MyActivity.this, secondClass.class));
}
}
getContaxt() 和 getBaseContext() 之间的区别如下: 第一个为您提供使用的视图或活动的上下文对象(例如活动上下文),而 BaseContext 是应用程序的上下文。我通常只将基本上下文用于与视图无关的操作,比如获取 SharedPreference 或数据库访问,同时坚持使用活动上下文来处理依赖于视图的事情,比如创建一个新的 View 对象或获取一个 Inflater——直到现在我运行得很好。
本质上,它是这样的:
Activity extends ContextThemeWrapper extends ContextWrapper extends Context
在大多数情况下,如果它说Context
,那么您提供的任何内容都会起作用。