ThisActivityName.this.finish()和finish()之间有什么区别吗?

时间:2015-05-14 09:37:31

标签: java android scope

这两者之间有区别吗?

startActivity(intent);
finish();

startActivity(intent);
ThisActivityName.this.finish();

注意: ThisActivityName是代码所在活动的名称。我被告知在启动时执行ThisActivityName.this.finish();而非finish()一项新活动。所以我很好奇,如果有任何区别。在我刚刚开始下一个活动的场景中。

2 个答案:

答案 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