2012-01-04 6 views
0

Я создаю устройство для чтения новостей для Android, где первое мероприятие покажет список последних новостей в сочетании с изображением предварительного просмотра миниатюр. Чтобы получить миниатюру, мне нужно запустить метод, который значительно увеличивает время загрузки; поэтому я думал создать отдельный поток для запуска каждый раз. В частности, я хотел бы сначала загружать заголовки новостей, а затем загружать фотографии по одному; выполняя все это, я не хочу, чтобы пользовательский интерфейс был заблокирован (например, если пользователь касается новостей, я хочу, чтобы приложение загружало его, даже если тары - это некоторые миниатюры, которые все еще загружаются). Мой вопрос: должен ли я использовать обработчики (один поток для каждой новости) или AsyncTask (один объект asyncTask для каждой новости), чтобы достичь этого?
Спасибо за ваши ответы.Загрузка пользовательского интерфейса Android, избегающего блокировки

+0

Сколько новостей мы говорим? – JOG

+0

Четырнадцать новостей для загрузки – user1012480

ответ

0

Handler Vs AsyncTask

Я хотел бы использовать AsyncTask, чтобы загрузить все «новостные ссылки» и затем, что AsyncTask вызвать AsyncTask, чтобы загрузить каждую миниатюру и обновления пользовательского интерфейса onPostExecute. Затем, если пользователь нажимает на ссылку до ее завершения, вы можете вызвать отмену на главной Asynctask, которая будет проверять isCancelled() между каждой асинхронной миниатюрой и возвращаться, если она была отменена.

0

Несомненно, что AsyncTasks более упрощены и модульны, чем архитектурная архитектура нитей, но внутренне они выполняют действие таким же образом.
Подойдя к вашей проблеме, я бы предложил сначала загрузить новость.
Ваши новости pojo/class могут быть похожими на два feilds,
title и imageUrl.

Теперь отобразите список новостей и запустите другой AsyncTask, который извлекает изображения один за другим и сохраняет их в списке данных Str /.

Ваш адаптер должен быть «notifyDataSetChanged()» каждый раз, когда изображение извлекается с сервера.

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

0

я остроумие сделать задачу асинхронной для загрузки данных, а затем преобразования приложений задачи, то будет заполнить список, когда задача асинхронной является дон руды в то время как он работает

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