У вас есть несколько вариантов. Я выскажу свое мнение здесь.
Самым простым было бы создание статического списка на уровне активности или приложения. Просто убедитесь, что вы освобождаете список памяти после использования, сделав его пустым.
Другое решение, которое я нашел, это передача данных с помощью enum, но согласно
комментарии Я не уверен насчет его производительности
Были бы некоторые различия в каждом из вышеперечисленных подходов. Но это не будет ощутимой разницы, потому что каждый подход помещает List в память, использует его, а затем освобождает.
В поисках ОПТИМАЛЬНОГО и ЭФФЕКТИВНОГО решения для достижения выше
функциональность.
Создайте статический список и сделайте его пустым после использования. будет наиболее эффективным и простым способом.
Вы можете сделать список NULL в onDestroy()
вашего фрагмента.
Вы можете использовать LiveData , но я думаю, что было бы не очень хорошей идеей добавлять библиотеку LiveData только для одного использования в приложении. Также вы должны понять это в первую очередь. Таким образом, вы можете перейти со статическим списком.
в действии
showFragment();
ApplicationClass.list = myList;
Фрагмент
onViewCreated(){
...
setAdapter(ApplicationClass.list);
...
}
onDestroy(){
ApplicationClass.list = null;
}
Важно
Никогда не рекомендуется извлекать все данные сразу с сервера. Пожалуйста, делайте нумерацию страниц, в которой ваше приложение нуждается больше всего, потому что в одно время могут быть тысячи пользователей онлайн .
Таким образом, при таком подходе вы передадите Фрагменту всего несколько предметов. тогда вы будете делать разбиение на страницы во фрагменте.
Этот подход требует времени, чтобы немного изменить поток. Но самый надежный способ в вашем случае .
Редактировать
Если вы уже используете нумерацию страниц и по-прежнему получаете большие данные за один раз, это снова проблема. Поскольку нумерация страниц используется, чтобы избежать этих проблем с памятью.
Вы можете сделать 2 вещи в качестве решения.
1. Запросите ограниченные данные сразу, скажем, 50-60 пунктов за запрос.
2. Вы можете отобразить и удалить ненужные поля из своего списка при передаче намерения.
Я бы предпочел первый.