2016-03-13 2 views
-2

У меня есть приложение для Android, которое загружает большое количество изображений из моей онлайн-базы данных SQL и отображает их пользователю. То, как я сейчас обрабатываю это, - это загрузить начальные 10 изображений, когда пользователь нажимает кнопку, затем я начинаю отображать эти 10 изображений, а в фоновом режиме - TimerTask, который выполняет каждые 2000ms и загружает следующие 10 изображений, пока все изображения были загружены. Проблема заключается в том, что, хотя я вызываю timer.cancel(), когда пользователь покидает слайд-шоу, таймер по-прежнему неоправданно загружает некоторые изображения в соответствии с журналами (я думаю, что журналы немного задерживаются из-за загружаемых изображений). Кроме того, я не могу выполнить любые другие HTTP-запросы за время загрузки изображений. Моя цель - предоставить пользователю опыт, в котором ему не нужно слишком долго ждать, чтобы начать просмотр фотографий (сразу же скачать их все сразу не может быть и речи), но также я не хочу, чтобы фоновая загрузка мешала любым способом с его использованием приложения. Моя цель - добиться чего-то вроде предложений Snapchat со своими историями, где предварительно загружены несколько изображений, позволяющих пользователю их просматривать, и я полагаю, что остальные загружены в фоновом режиме. Каков наилучший способ добиться чего-то подобного?Загрузка изображения Android

+0

прочитайте [этот ответ] (http://stackoverflow.com/questions/35906297/android-programming-working-with-lots-of-images/35906466#35906466) ..hope он поможет – ELITE

+0

также проверьте [ этот ответ тоже] (http://stackoverflow.com/questions/35476073/android-code-to-fetch-image-from-server-and-display-it-in-imageview/35477006#35477006) .. где я упоминал подробные инструкции по загрузке изображений с сервера. – ELITE

ответ

1

Ваша проблема в том, что даже вы звоните timer.cancel(), вы просто отменили таймер, но задача загрузки изображений была выполнена, то есть сетевой запрос на загрузку изображений был отправлен, поэтому вы больше не можете его отменять.

ImageLoading - важная и жесткая тема в Android-разработке, она вызывает много ключей, таких как декодирование и кодирование изображений, сетевой запрос, кеш памяти, кеш диска и т. Д., Это потребует много времени для его решения. Lucky , для этого есть несколько отличных библиотек, например Picasso, Universal-Image-Loader, вы можете использовать их напрямую, и вы получите то, что хотите. Если вы хотите узнать их реализации, просто взгляните на их источник кода, вы выиграете от этого.

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