Я вызываю 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 его больше нет.
В чем может быть проблема?
Заранее спасибо!
@HedeH, чтобы всегда запускать мою SecondActivity как новую задачу, если она не в фоновом режиме
А зачем тебе это нужно?
@HedeH, прочтите документацию. Но на самом деле это не решает мою проблему с тем, что onActivityResulyt () не вызывается. Спасибо, что указали на это в любом случае
Вы установили какой-либо launchMode на теге SecondActivity в Manifest?
Нет, для файла манифеста не задан режим запуска
Любая другая интересная конфигурация в Manifest? Что расширяет ваш FirstActivity? Зачем нужно звонить в super.onActivityResult? Я с радостью постараюсь помочь, но чувствую, что некоторая информация отсутствует ...
Вы не можете использовать 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();
Почему вы используете этот флаг?
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);