onActivityResult () не вызывается после завершения SecondActivity - PullRequest
0 голосов
/ 13 сентября 2018

Я вызываю SecondActivity для своей FirstActivity. Пожалуйста, смотрите ниже:

    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 это уже не так.

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

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

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

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

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

            finish();
0 голосов
/ 13 сентября 2018

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

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

Этот флаг можетне должен использоваться, когда вызывающая сторона запрашивает результат от запускаемого действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...