При разработке приложений для 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(). Выбор конкретного метода зависит от поставленных задач и требований в проекте.