【问题标题】:onActivityResult not wait resultsonActivityResult 不等待结果
【发布时间】:2014-02-02 00:45:37
【问题描述】:

我有这个代码:

在按下 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 状态来做我的事情

【问题讨论】:

  • 包括您的相关活动清单声明。

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


【解决方案1】:

也许您的 OptionsMenuActivity 在清单启动模式中等于单任务?这是 startActivityForResults 文档的摘录:

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

【讨论】:

    猜你喜欢
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    相关资源
    最近更新 更多