我有这段代码:
按下SettingButton时,在MainActivity类中:
static final int DUMP_REQUEST = 1;
public void onSettingButtonClick(View button)
{
//call options menu activity
Intent intent = new Intent(MainActivity.this, OptionsMenuActivity.class);
startActivityForResult(intent, DUMP_REQUEST);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == DUMP_REQUEST)
{
if (resultCode == RESULT_OK)
{
Log.e("onActivityResult", "resultOK");
}
else
{
Log.e("onActivityResult", "result_not_Ok");
}
}
}
按下SaveButton时,在类OptionsMenuActivity中:
public void onSaveButtonClicked(View v)
{
String dumpDb="true";
Intent intent = new Intent();
intent.putExtra("DUMP", dumpDb);
setResult(RESULT_OK, intent);
finish();
}
当我按下SettingButton时, OptionsMenuActivity 启动,并立即显示日志:
E/onActivityResult﹕ result_not_Ok
单击SaveButton时, OptionsMenuActivity 将关闭, MainActivity 将运行。
/ - /
我的问题是 onActivityResult()在我按 SaveButton 和从不resultCode == RESULT_OK 之前不等待结果,所以从不我可以根据 OptionsMenuActivity 状态
来完成我的工作答案 0 :(得分:3)
也许你的OptionsMenuActivity在manifest launchmode中等于singletask?这是startActivityForResults doc:
的摘录例如,如果您要启动的活动使用singleTask启动模式,它将不会在您的任务中运行,因此您将立即收到取消结果。