2012-01-26 36 views
1

startActivity()總是調用startActivityForResult()嗎?例如:startActivity()總是調用startActivityForResult()嗎?

public class ActivityTest extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Button btn = (Button)findViewById(R.id.btn); 
     btn.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       Intent intent = new Intent(
        ActivityTest.this, ActivityFoo.class); 
       startActivity(intent); 
      } 
     }); 
    } 

    @Override 
    public void startActivity(Intent intent) { 
     Log.e("hi", "startActivity()"); 
     super.startActivity(intent); 
    } 

    @Override 
    public void startActivityForResult(Intent intent, int requestCode) { 
     Log.e("hi", "startActivityForResult()"); 
     super.startActivityForResult(intent, requestCode); 
    } 
} 

輸出:

startActivity() 
startActivityForResult() 

感謝

+1

你爲什麼不檢查源代碼? – Guillaume

回答

6

是,因爲startActivityForResult()源代碼如下所示:

public void startActivity(Intent intent) { 
     startActivityForResult(intent, -1); 
    } 

他們之所以如此,以避免重複碼。在startActivityForResult()中定義了啓動Activity的真正實現,如果傳入-1的值,它將簡單地忽略結果。

相關問題