Как из второй активити вернуться в первую, при этом пересоздав первую?
Имеется приложения с 3 экранами. Экран А- главный и два вспомогательных - Б и С. В экране Б я изменяю тему приложения, но возвращаюсь к главному экрану и вижу что изменения не применились. Иду дальше в С и там они применились, даже если перед этим всем зайти в С. Так как setTheme находится везде в onCreate,то логично предположить(дебаг подтверждает), что onCreate первой самой активити - экрана А не применяется заново.
- Как сделать так, что бы при возврате из второй активити в первую(Б->A) у меня применялся метод onCreate(полное пересоздание активити)? 2)Почему С ведёт себя так как будто она пропадает из стэка активити? Ведь по логике если я зашел в С, потом пошёл поменял тему в Б через А. то при возврате в С тоже не должен onCreate применяться.
Я допёр до чего-то такого - при вызове Б я делаю так:
intentSettings.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intentSettings.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
и в Б переопределяю onBackPressed так что бы заново вызывалась активити А. Спасибо
Ответы (1 шт):
Вы можете просто повторно использовать Intent, который создал нужную вам Activity. Создаейте в вашей Activity переменную
Intent intent;
а в onCreate (), присвойте ей значение
starterIntent = getIntent();
После того как вы захотите пересоздать вашу Activity вызовите
finish();
startActivity(starterIntent);
Это не очень элегантное решение и я думаю, что корень вашей проблемы в другом месте, но это простой способ перезапустить свою Activity и заставить ее перезагрузить все.