Приложение Android имеет два действия.
Действие A показывает список элементов.Упражнение B показывает некоторые подробности о конкретном элементе.
Детали загружаются из большой базы данных SQLite.Запросы, используемые для генерации данных, занимают от 250 до 500 миллисекунд на приемлемом телефоне.
Мой вопрос заключается в том, как лучше всего загружать данные, обеспечивая при этом хороший пользовательский опыт.
Текущая активностьB выполняет AsyncTask при его создании.Когда задача завершается, она создает несколько представлений и добавляет их на экран.В потоке пользовательского интерфейса данные не загружаются.
Для пользователя действие B открывается с красивой стандартной анимацией масштабирования, а затем через долю секунды представление заполняется данными.Это выглядит немного дерьмово IMO.
Другой вариант - загрузить данные в поток пользовательского интерфейса.Если я сделаю это в нужное время, то экран зависнет с выбранным элементом списка на 250 мс, пока данные загружаются, а затем вид меняется со стандартной анимацией масштабирования, но масштабируется в уже заполненном виде.Это выглядит намного лучше, но я блокирую поток пользовательского интерфейса, который не идеален.
Каков наилучший способ добиться хорошего перехода, когда новый вид еще не готов?