Android - потоковое декодирование BitmapFactory изображений - PullRequest
0 голосов
/ 15 октября 2010

Наше приложение для Android делает много декодирования изображений. Мы получаем много изображений из Интернета, локальных кешей и т. Д.

До настоящего времени эти изображения декодировались в потоке пользовательского интерфейса (с использованием методов BitmapFactory.decodeX ()). Это приводит к некоторым сбоям тайм-аута, потому что пользовательский интерфейс недостаточно быстро реагирует на ввод пользователя.

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

Так, каков лучший способ поместить это в другой поток? Нужно ли мне идти в меру написания Услуги? Это кажется немного тяжелым. Есть ли какие-то решения для этого уже там?

Ответы [ 2 ]

2 голосов
/ 16 октября 2010

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

1 голос
/ 18 октября 2010

Вы можете использовать IntentService для постановки в очередь на скачивание / декодирование, просто наберите startService() для каждого изображения сразу, и он будет делать их по одному за раз. затем вы можете передать его в свою деятельность с ResultReceiver

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