首页 > 解决方案 > 在 SecondActivity 完成后不调用 onActivityResult()

问题描述

我在我的 FirstActivity 上调用 SecondActivity。请看下面:

    Intent intent = new Intent(this, SecondActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    activity.startActivityForResult(intent, 1);

在我的 SecondActivity 上,我完成了它的特定屏幕并将结果设置为 RESULT_OK

    activity.setResult(Activity.RESULT_OK);
    activity.finish();

回到我的 FirstActivity,我重写了 onActivityResult(params) 方法

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == 1) { //to make sure request was successful
        if (resultCode == Activity.RESULT_OK) {
            finish();
        }
    }
}

但是onActivityResult()在 SecondActivity 完成后没有被调用。尝试调试并在 FirstActivity 首次启动时,这只是onActivityResult()被调用的时间,但在从 SecondActivity 返回时它不再是。

可能是什么问题?

先感谢您!

标签: androidandroid-intentonactivityresult

解决方案


不能FLAG_ACTIVITY_NEW_TASKstartActivityForResult一起使用。

此标志的文档中说明了这一点:

当调用者从正在启动的活动中请求结果时,不能使用此标志。


推荐阅读