ListView onItemClick не всегда реагирует, занят UIThread - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть ListView с 4 фотографиями в каждой строке и менеджером загрузки фотографий, который управляет загрузкой всех этих фотографий. Я ограничил количество потоков, загружающих мои фотографии, потому что у меня было слишком много потоков, созданных по прибытии в ListView (Раньше это было: 4 фотографии в строке * 5 или 6 отображаемых строк => 20/25 потоков, и + если Вы прокручиваете)

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

Есть ли способ избежать такого пропущенного события?

Обновление: Я отправляю трансляцию каждый раз, когда фотография загружена, и notifyDataSetChanged на моем ListView адаптере.

1 Ответ

3 голосов
/ 21 декабря 2011

Создание 20/25 потоков для загрузки изображений - это что-то плохая идея .

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

Также вы можете использовать Ленивый список загрузки по Fedor LazyList .

Посмотрите на Ленивая загрузка изображений в ListView на Android

SO Вопрос Android - Как мне лениво загружать изображения в ListView

Безболезненная резьба

...