【发布时间】:2012-11-15 08:55:59
【问题描述】:
finish() 和 ActivityName.this.finish() 有什么区别吗?如果我们有名称为SampleActivity 的活动,我们可以通过调用finish() 和SampleActivity.this.finish() 来完成它。有什么区别?
【问题讨论】:
标签: android android-activity activity-finish
finish() 和 ActivityName.this.finish() 有什么区别吗?如果我们有名称为SampleActivity 的活动,我们可以通过调用finish() 和SampleActivity.this.finish() 来完成它。有什么区别?
【问题讨论】:
标签: android android-activity activity-finish
大部分时间都是一样的,除非你在内部类中。
在这种情况下,第二种表示法用于消除对包含活动方法的调用的歧义。
例如:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
finish(); // the activity's finish()
new Runnable() {
private void finish() {
...
}
@Override
public void run() {
SampleActivity.this.finish(); // the activity's finish()
finish(); // the runnable's finish()
}
};
new Runnable() {
@Override
public void run() {
SampleActivity.this.finish(); // the activity's finish()
finish(); // the activity's finish() (because the inner class doesn't hide it
}
};
}
【讨论】: