Полагаю, вы имеете в виду проблему с getView, запрашивающим одно и то же представление несколько раз.
ListView делает это, потому что ему нужно получить измерения для представлений по разным причинам (размер полосы прокрутки, макет и т. Д.)
Эту проблему обычно можно избежать, не используя свойство "wrap_content" в вашем списке просмотра.
Кроме того, использование getView для определения того, было ли представление отображено, является просто плохой идеей. ListView имеет много оптимизаций, которые связываются с порядком вызова getView для каждой строки, поэтому невозможно узнать, что произойдет, и ваше приложение начнет показывать странное поведение.
Старайтесь избегать любых взаимосвязей между представлением и данными, кроме концепции представления как отображения этих данных.
Вместо этого, пусть ваш рабочий поток или прослушиватель событий в вашем списке отслеживания просматривают список, для которого элементы в списке были показаны пользователю, обновляют данные и вызывают dataSetChanged на вашем адаптере.