OnActivityResult () не вызывается после завершения SecondActivity

Я вызываю SecondActivity в своем FirstActivity. См. Ниже:

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

на моем SecondActivity я заканчиваю его конкретный экран и устанавливаюResult как 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 его больше нет.

В чем может быть проблема?

Заранее спасибо!

Почему вы используете этот флаг? intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

HedeH 13.09.2018 10:32

@HedeH, чтобы всегда запускать мою SecondActivity как новую задачу, если она не в фоновом режиме

Cha 13.09.2018 10:35

А зачем тебе это нужно?

hardartcore 13.09.2018 10:43

@HedeH, прочтите документацию. Но на самом деле это не решает мою проблему с тем, что onActivityResulyt () не вызывается. Спасибо, что указали на это в любом случае

Cha 13.09.2018 11:07

Вы установили какой-либо launchMode на теге SecondActivity в Manifest?

HedeH 13.09.2018 11:09

Нет, для файла манифеста не задан режим запуска

Cha 13.09.2018 11:17

Любая другая интересная конфигурация в Manifest? Что расширяет ваш FirstActivity? Зачем нужно звонить в super.onActivityResult? Я с радостью постараюсь помочь, но чувствую, что некоторая информация отсутствует ...

HedeH 13.09.2018 11:27
3
7
224
2

Ответы 2

Вы не можете использовать FLAG_ACTIVITY_NEW_TASK и startActivityForResult вместе.

Это указано в документы этого флага:

This flag can not be used when the caller is requesting a result from the activity being launched.

Вам нужно создать ответное намерение во втором действии, оно выглядит так:

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

            finish();

Другие вопросы по теме