2015-09-13 4 views
0

Я знаю, что этот вопрос задан перед тем, как это сделать в StackOverflow. Но у меня другое сомнение по этому сценарию. В документах Android предлагается использовать async-задачи для этой операции и обрабатывать проблемы многопоточности с помощью использования bitmap drawable, который содержит слабую ссылку на самую последнюю задачу для просмотра изображений. Дополнительная информация по этому вопросу: linkЗагрузка изображений в Android-браузере

Пример довольно хорошо объяснен, но у меня другой подход к этой же проблеме.

МОЙ ПОДХОД

я думать об использовании сервиса, с нитями, работает внутри него для загрузки изображений, соответствующих различным URL, которые отображают в разных imageviews. Кроме того, кэш может поддерживаться с URL-адресом в качестве ключа, а битмап - как значение. Затем, прокручивая также, просто позвольте старому потоку продолжить работу, и запустите новый поток для текущего url, и поместите его в кеш и установите растровое изображение, извлекая из кеша (url будет отличаться, поэтому не будет той же проблемы как в случае асинхронных задач, когда сам образ был ключевым). Один из недостатков, который я вижу для моего подхода, заключается в том, что мне нужно будет загружать сразу все изображения (так как я не могу остановить службу до того, как все закончится, и я не могу продолжать ее работать слишком долго). Но я думаю, что есть что-то еще, поскольку такой подход нигде не упоминается в StackOverflow, а также в официальных документах разработчиков. Я бы очень признателен за помощь в этом.

+0

recycle view делает то же самое, и вы можете использовать библиотеку для изображения, такого как picasso ... вы пробовали их раньше? – Moudiz

+1

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

ответ

0

Попытайтесь использовать библиотеку волейбола с NetworkImageView и кешем. Tutorial

+0

Мой вопрос не в том, как решить проблему (есть сторонние библиотеки для этого, я знаю), но в отношении недостатков моего подхода. Если бы вы могли проанализировать это, это было бы более полезно. –

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