Reputation: 39681
Does startActivity() always call through to startActivityForResult()? Example:
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);
}
}
Output:
startActivity()
startActivityForResult()
Thanks
Upvotes: 1
Views: 1367
Reputation: 33741
Yes, because the source code for startActivityForResult()
looks like this:
public void startActivity(Intent intent) {
startActivityForResult(intent, -1);
}
They wrote it this way to avoid duplicate code. The real implementation of starting an Activity
is defined in startActivityForResult()
and if the value of -1 is passed in, it simply ignores results.
Upvotes: 6