Здравствуйте.
Я новичок в 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, но пока с этой темой не знаком)