При запуске нового приложения для клиента я снова задаю себе тот же вопрос о том, кто должен отвечать за загрузку данных: действия или фрагменты. Я использовал оба варианта для различных приложений, и мне было интересно, какой шаблон лучше всего в соответствии с вами в терминах:
- ограничение сложности кода.
- обработка крайних случаев (например, поворот экрана, сохранение мощности экрана, потеря подключения и т.д.).
Вариант 1 - Активность загружает данные и фрагмент, только отображает его
Это позволяет иметь фрагменты, которые просто загружаются кучей объектов для отображения. Они ничего не знают о загрузке данных и их загрузке.
С другой стороны, активность загружает данные, используя любой метод (например, изначально последние 50 записей и при поиске, загружает результат поиска). Затем он передает его фрагменту, который отображает его. Метод загрузки данных может быть любым (от службы, от DB,... фрагментов известно только о POJO)
Это своего рода MVC-архитектура, где активностью является контроллер, а фрагменты - это вид.
Вариант 2 - операция упорядочивает фрагменты, а фрагменты отвечают за выборку данных
В этом шаблоне фрагменты являются автономными частями приложения. Они знают, как загружать данные, которые они отображают, и как показать их пользователю.
Действия - это просто способ размещения фрагментов на экране и для координации переходов между действиями приложений.