Хранение фрагментов в активити

198
07 февраля 2018, 12:49

В активити с BottomNavigation всего 3 путкта меню и 3 фрагмента которые переключаются при навигации. Для одного из них нужно всегда хранить состояние. Рационально ли хранить все 3 фрагмента в памяти как поля активити или лучшей практикой будет при смене фрагментов каждый раз создавать новый объект?

Answer 1

В данном случае правильной практикой будет не пересоздавать Object фрагмента, без нужной необходимости, даже если у вас 5 табов. На практике фрагменты могут быть очень тяжелыми, тогда необходимостью будет являться - освобождение памяти. Но эту ситуацию вы должны учитывать всегда, из-за особенностей Системы, или просто перехода на другой Activity().

Как пример от Google:

  AddEditTaskFragment addEditTaskFragment = (AddEditTaskFragment) getSupportFragmentManager().findFragmentById(R.id.contentFrame);
    if (addEditTaskFragment == null) {
        addEditTaskFragment = mFragment;
   ActivityUtils.addFragmentToActivity(getSupportFragmentManager(),
                addEditTaskFragment, R.id.contentFrame);
    }

кончено же его можно написать интересней, например так:

 if (fragmentUtils.hasFragment(tag)) fragmentUtils.showFragment(tag);
 else fragmentUtils.addFragment(R.id.frame_fragment_container, lazyFragment.get(), tag);
READ ALSO
Замена символов в строке Java

Замена символов в строке Java

Метод string = stringreplace("a", "b"); заменит все буквы

186
Выгрузка файла через WebView Android

Выгрузка файла через WebView Android

Вообщем код брал с примеров от гуглаsetUpWebViewDefaults(mWebView); вызываю при старте соответственно

199
Лента уведомлений

Лента уведомлений

Как реализовать чтобы при нажатии на уведомление открывалось приложение и содержимое уведомления(Заголовок, Текст сообщения) добавлялось...

169
Что это за способ создания экземпляра класса perem = new Class() { public void method() {}}?

Что это за способ создания экземпляра класса perem = new Class() { public void method() {}}?

Я знаю что классы в java создаются или присваиваются переменным на подобии

225