2012-01-26 39 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的值,它将简单地忽略结果。

相关问题