в моем примере не произойдет ничего, т. к. ориентация задана постоянная — portrait.
для случая когда нужно что бы работал авто-поворот (sensor), добавляем кеширование изображений и используем изображения повторно, из памяти ;)
скачал сорцы:
Вот в чем вопрос заключался:
при прокрутке метод getView у FetchImageAdapter будет вызывать некоторое количество раз.
При этом объект ViewHolder, передаваемый в качестве параметра, может быть одинаковым для разных элементов коллекции. тут все ок (для оптимизации).
И это означает, что в один и тот же объект с разной периодичностью, будет из отдельных потоков загружаться некоторое количество картинок, принадлежацих разным объектам. Последствия думаю очевидны.
в данном примере будут, если список будет достаточно длинный. но этого можно избежать, созданием HashMap ключами которого будут ImageView а значениями, — URL. тогда, если пришел запрос на новое изображения для уже существующего в HashMap ImageView, обновляем значение, а изображение по пердыдущему URL не присваевать ImageView. Надеюсь понятно изложил.
Опять-таки, советую создать кеш скаченных изображений, что бы не скачивать их снова. Но это уже тема для другого поста ;)
1) кешируйте и складывайте картинки на диск, и делайте recycle() ненужным, тогда OutOfMemory не будет. а если в кеше нет изображения, востанавливаем его с диска.
2) обрывать поток означает то, что нужно будет создавать его опять, если пользователь будет скролить список вверх (назад), что не есть хорошо, ИМХО.
но что-то у меня с руками и потоками и не сложилось, хотя он и делал кеширование. Самое главное что шаблон отрисовывается а картинки потом подгружаются
Как реализовать загрузку изображений в список в отдельном потоке на Android