Sobes.tech
Junior — Middle
76

Каким образом можно передать результат из текущей Activity обратно в вызывающее её приложение при использовании навигации назад?

Companies where asked
Альфа КапиталАльфа Капитал

Answer from AI

sobes.tech AI

Чтобы передать результат из текущей Activity обратно в вызывающее приложение при навигации назад в Android, обычно используют метод setResult() вместе с Intent для передачи данных.

Основные шаги:

  1. В вызывающей Activity запускаете новую Activity с помощью startActivityForResult() (в старом API) или используете registerForActivityResult() (в новом API).

  2. В текущей Activity, перед закрытием (например, при нажатии кнопки назад), создаёте Intent, кладёте в него данные результата и вызываете setResult(RESULT_OK, intent).

  3. Затем вызываете finish(), чтобы закрыть текущую Activity.

  4. В вызывающей Activity переопределяете метод onActivityResult() (старый API) или обрабатываете результат в callback (новый API), чтобы получить данные.

Пример с использованием старого API:

// В вызывающей Activity
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        String result = data.getStringExtra("result_key");
        // обработать результат
    }
}

// В текущей Activity (SecondActivity)
Intent resultIntent = new Intent();
resultIntent.putExtra("result_key", "данные для возврата");
setResult(RESULT_OK, resultIntent);
finish();

Таким образом, при навигации назад можно передать данные обратно вызывающему приложению.