finish()
和有什么区别ActivityName.this.finish()
吗?如果我们有带有 name 的活动SampleActivity
,我们可以通过调用finish()
和 by来完成它SampleActivity.this.finish()
。有什么不同?
user1310152
问问题
1197 次
1 回答
8
大多数时候它是相同的,除非你在一个内部类中。
在这种情况下,第二种表示法用于消除对包含活动方法的调用的歧义。
例如:
@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
}
};
}
于 2012-11-15T08:57:07.100 回答