Как при возвращении в активность грубо говоря выполнять onCreate

Проблема заключается в том, что при переходе из активности 1 в активность 2, в активности 2 может измениться бд, в свою очередь в первой активности из этой бд заполняется список. И получается так, что при возвращении список уже как бы заполнен и не обновлен. Думал через onResume решить, но слишком костыльно вышло бы. Есть ли решение проще?


Ответы (1 шт):

Автор решения: Sergei Buvaka

А вы думаете вызов onCreate() не будет костыльным решением?

Самым простым решением, перенесите код работы с БД в onStart(). Если по каким-т причинам вам не подходит onStart() то вам нужен какой-то флаг, вы можете к примеру воспользоваться методом startActivityForResult() при возврате с второй активити в метода onActivityResult() вы можете снова обновить ваш UI данными из БД.

Еще вариант это организовать вашу работу с БД по принципу паттерна "Наблюдатель". Т.е. вы в onStart() подписались на изменения и всякий раз когда что-то изменилось получаете новые данные.

Но как мне кажется вариант с onStart() самый простой, ведь пользователь может свернуть приложение, а в БД что-то поменяется и вам наверное логично было бы показать свежие данные. Но тут надо рассматривать конкретные случаи, серебряных пуль тут нет.

→ Ссылка