2016-11-16 5 views
0

Если мне нужно отображать данные, поступающие из API в фрагменте (используя AsyncTask), скажем, список элементов в RecyclerView, я считаю это не должно делаться в onCreate() или onCreateView(), поскольку теоретически элементы представления инициализируются и могут быть не готовы к использованию, если вызов API быстрее. Я прав?
(Я предполагаю, что получить ответ от API за короткий промежуток времени, чем требуется для Android, чтобы создать представление).Рекомендуемый метод получения данных для отображения (из API) в Android-фрагменте

Существует onActivityCreated() и onStart(), но я все еще смущен, когда родительская активность вызывает их.
То, что я хочу избежать, - это перезагрузка данных (обращение к API), если это необязательно, например, из-за изменения ориентации или возврата к этой активности после нажатия кнопки «Назад» из возможного «следующего» Мероприятия.

Спасибо.

ответ

0

Если это ваш первый «окно» (Activity или любой другой), единственный способ, которым я знаю, показывает текст загрузки, изображения и т.д.

Если это не ваш первый взгляд, вы можете загрузить свои данные в другое окно и сохраните его для последующего использования, когда пользователь достигнет представления, чтобы показать информацию.

Вы можете загрузить его прямо в вашем onCreate, onStart или так, но, как вы сказали, вероятно, у вас не будет времени, чтобы загрузить информацию, так что снова показать loading страницу или все, что вы хотите, в то время как ваши данные поступают.

Чтобы избежать ошибок инициализации, вызовите AsyncTask после инициализации элементов. И чтобы избежать вызова API несколько раз, сохраните свои данные локально, пока приложение открыто, это зависит от ваших требований приложения.

Смежные вопросы