2012-11-15 52 views

回答

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