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

时间:2012-11-15 08:55:59

标签: android android-activity activity-finish

finish()ActivityName.this.finish()之间有什么区别吗?如果我们的活动名称为SampleActivity,我们可以通过调用finish()SampleActivity.this.finish()来完成。有什么区别?

1 个答案:

答案 0 :(得分:7)

大部分时间它是相同的,除非你在内部阶级。

在这种情况下,第二种表示法用于消除对包含活动方法的调用。

例如:

@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
        }
    };
}