2012-01-26 5 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); 
    } 
} 

出力:彼らは、重複を避けるために、このようにそれを書いた

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

startActivity() 
startActivityForResult() 

おかげ

+1

ソースを確認してみませんか? – Guillaume

答えて

6

はい、startActivityForResult()のソースコードは次のようになりますので、コード。 Activityを開始する実際の実装はstartActivityForResult()で定義され、-1の値が渡された場合は単に結果が無視されます。

関連する問題