У меня есть приложение для перевода на язык, которому необходимо загрузить некоторые исходные данные в первый раз. Когда приложение впервые запускается, первым шагом является получение списка поддерживаемых языков с сервера. Затем пользователь выбирает, какие они хотят установить, а остальные таблицы затем загружаются.Загрузка данных на Android-приложение с первого запуска
Я проверяю, имеются ли языки в локальной базе данных, а если нет, подключитесь к серверу и загрузите их как JSON. Пользователь не может ничего сделать, пока эти данные не будут получены с сервера.
Если нет сетевого подключения, диалоговое окно должно побуждать пользователя перейти к настройкам WIFI. Если с загрузкой произошла сетевая ошибка, другое диалоговое окно предложит пользователю повторить попытку или подождать до следующего. Если загрузка завершается успешно, запускается новый Intent, чтобы отправить их для выбора языков для установки.
У меня это в основном функционирует (мой AlertDialogs не отображается), но вопрос в том, подходит ли это для этого. В настоящее время я настроил его как AsyncTask, но я видел много сообщений с отзывами о том, как AsyncTask не следует использовать, когда от него зависит пользовательский интерфейс. Достаточно справедливо, но AsyncTask кажется рекомендуемым методом для загрузки данных.
Является ли AsyncTask правильным способом загрузки данных или есть предпочтительная альтернатива?
Как лучше всего справиться с этим в пользовательском интерфейсе, так как это зависит от этих данных? Заставка? Я бы предпочел, но, похоже, что-то должно быть там, и мне нужно где-то отображать AlertDialogs, если это необходимо.
Вы просили спросить на http://ux.stackexchange.com/? (для второго вопроса) – malarres