Мы используем фрагменты, и мы не нуждаемся в их автоматическом восстановлении при восстановлении Activity. Но Android каждый раз, когда Activity::onCreate(Bundle savedInstanceState)
->super.onCreate(savedInstanceState)
вызывается, восстанавливает фрагменты, даже если мы используем setRetainInstance (false) для этих фрагментов.Предотвращение восстановления фрагментов в Android
Кроме того, в этих Fragments
Fragment.performCreateView()
вызывается непосредственно без прохождения Fragment::onAttach()
и так далее. Кроме того, некоторые из полей являются нулевыми внутри восстановленных Fragment
...
Кто-нибудь знает, как предотвратить восстановление Android-фрагментов?
P.S. Мы знаем, что в случае воссоздания Activity для изменений конфигурации это можно сделать, добавив в манифест ndroid:configChanges="orientation|screenSize|screenLayout
. Но как насчет воссоздания активности в случае автоматической очистки памяти?
Простой, но эффективный. Это действительно спасло мою задницу с текущим плохим дизайном (1 Activity App + 1 Fragment на экран). – momo
Если у фрагмента есть некоторый пользовательский интерфейс, разве вы не считаете его плохим пользовательским интерфейсом. –
Это работает как шарм, но я действительно надеюсь, что есть более чистый способ сделать это ... – jenzz