I have the following code to start activities:
public boolean onOptionsItemSelected(final MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case MENU_PREFS:
startActivityForResult(new Intent(this, PreferencesActivity.class),1);
break;
case MENU_ABOUT:
startActivityForResult(new Intent(this, AboutActivity.class),2);
break;
}
return false;
}
and following to catch results:
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data){
switch (requestCode){
case 1:
case 2:
if (resultCode==RESULT_CANCELED)
finish();
}
but onActivityResult triggers before activity (for result) starts. It works weird. First it retuns result with corresponding requestCode (1 or 2 in my case) with resultCode=0 so my main activity finishes. And right after that corresponding activity (for result) really starts. WTH?