@korvin2

Правильное закрытие activity с фрагментом?

Здравствуйте.
Я новичок в Android dev'e, поэтому извиняюсь за возможно глупый вопрос. Но проблема такая:
Имеется 2 активити:
  • На первом выводятся все записи из БД (через фрагмент);
  • На втором эти записи и создаются;

Возникла проблема, что после перехода со второго активити на первое, кнопка Back работала не совсем так, как нужно. То есть при её нажатии приложение не закрывалось, а возвращало фрагмент на прошлую стадию (проще говоря, на выводе было 5 записей. Нажав Back, вместо закрытия приложения, скрывалась последняя запись, итого их становилось 4). Переходя со второго активити на первое, я использовал Intent. Потом понял, что можно первое активити в принципе не вызывать (оно ведь просто onPause) и сразу закрыть второе (с помощью finish()). Тогда кнопка Back работала как надо, но только вот фрагмент с записями из БД не обновлялся.
Решил проблему тем, что добавил в первое активити:
@Override
    protected void onPostResume() {

        FragmentTransaction FragManager = getFragmentManager().beginTransaction();
        FragManager.replace(R.id.frag_lay, new Fragment1());
        FragManager.commit();

        super.onPostResume();

Как я понял, этот код обновляет фрагмент. Теперь всё работает как и должно. Но у меня такой вопрос: а если на первом активити у меня будет не один фрагмент, а 10? Тогда в onPostResume() их всех придется обновлять? Не знаю, считается ли это хорошим кодом. Были попытки переопределить метод onBackPressed(), чтобы приложение сразу закрывалось и не возвращало фрагмент на "прошлую стадию", но так и не получилось. Понимаю, что скорее всего нужно использовать MVP, но пока с этой темой не знаком)
  • Вопрос задан
  • 669 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Короче выкинь вторую активити. В 2к18 нет нужды делать две. Всё надо сделать на фрагментах. Фрагмент, который отображает данные из бд, должен следить за состоянием бд и обновлять данные. Если пользуешься SQLite, рекомендую StorIO прикрутить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы