Как вернуться из одной активности в предыдущую без пересоздания ее?

При разработке приложений для Android иногда возникает необходимость вернуться из одной активности в предыдущую без создания нового экземпляра. Это может быть полезно, например, когда нужно сохранить состояние предыдущей активности или передать данные обратно. В данной статье рассмотрим несколько способов реализации такой функциональности.

Одним из способов вернуться из одной активности в предыдущую без пересоздания является использование метода onBackPressed(). По умолчанию, данный метод просто закрывает текущую активность и возвращает пользователя на предыдущий экран. Однако, его можно переопределить для реализации необходимого функционала. Например, можно вызвать метод setResult() и передать в него код результата, чтобы предыдущая активность могла обработать этот результат.

Пример:

public void onBackPressed() {

Intent intent = new Intent();

intent.putExtra("result", "Some data");

setResult(RESULT_OK, intent);

finish();

}

Еще одним способом вернуться из одной активности в предыдущую является использование метода startActivityForResult(). Этот метод позволяет запустить активность с ожиданием результата, который мы можем получить при возврате из этой активности.

Пример использования метода startActivityForResult():

public void openActivityForResult() {

    Intent intent = new Intent(this, SecondActivity.class);

    startActivityForResult(intent, REQUEST_CODE);

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == REQUEST_CODE) {

        if (resultCode == RESULT_OK) {

            String result = data.getStringExtra("result");

            // Делаем что-то с полученным результатом

        }

    }

}

Таким образом, в данной статье мы рассмотрели два способа вернуться из одной активности в предыдущую без пересоздания: использование метода onBackPressed() и метода startActivityForResult(). Выбор конкретного метода зависит от поставленных задач и требований в проекте.