这两者之间有区别吗?
startActivity(intent);
finish();
startActivity(intent);
ThisActivityName.this.finish();
注意: ThisActivityName
是代码所在活动的名称。我被告知在启动时执行ThisActivityName.this.finish();
而非finish()
一项新活动。所以我很好奇,如果有任何区别。在我刚刚开始下一个活动的场景中。
答案 0 :(得分:2)
没有区别,它们是相同的。
答案 1 :(得分:2)
没有区别通常是。
他们正在调用相同的方法,但是,像ThisActivityName.this.finish();
一样调用它可以确保在不太可能发生的情况下,无论您执行代码的地方是否也有finish
方法,你打电话给对方。即使在您提及首先调用startActivity
的位置的情况下,也不会删除调用错误方法的可能性,特别是使用{{1}等常用名称}。
假设您位于活动文件中的自定义类中,该类具有声明的finish方法,也恰好不带参数。调用finish
将调用该方法而不是活动方法。
finish()
不太可能?是。不可能?完全没有。
我们的基本需求是了解public class WadusActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public class SomeOtherClass{
public SomeOtherClass(){
WadusActivity.this.finish(); //This calls the activity finish
finish(); //This calls the method below
}
public void finish(){
//method also named finish
}
}
}
在每种情况下所指的内容。当this
按原样使用时,它将引用包含关键字的第一个包装类实例,如果我们想在层次结构中引用更高级的东西,我们将需要在类名之前添加,就像你正在做的那样this