SecondActivity完成后未调用onActivityResult()

时间:2018-09-13 08:30:23

标签: android android-intent 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();
        }
    }
}

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

可能是什么问题?

提前谢谢!

2 个答案:

答案 0 :(得分:4)

您不能同时使用FLAG_ACTIVITY_NEW_TASKstartActivityForResult

在此标志的docs中声明:

  

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

答案 1 :(得分:0)

您需要在第二个活动中创建应答意图,如下所示:

            Intent answIntent = new Intent();
            setResult(RESULT_OK, answIntent); 

            finish();