onActivityResult不等待结果

时间:2014-02-02 00:45:38

标签: android android-intent android-activity android-studio

我有这段代码:

按下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 状态

来完成我的工作

1 个答案:

答案 0 :(得分:3)

也许你的OptionsMenuActivity在manifest launchmode中等于singletask?这是startActivityForResults doc:

的摘录
  

例如,如果您要启动的活动使用singleTask启动模式,它将不会在您的任务中运行,因此您将立即收到取消结果。