Скажем, у меня есть адаптер, который взаимодействует с общим набором данных. Во время компоновки составного представления (т. Е. ListView) вызывается getView и происходит доступ к адаптеру. GetView вызывается для последующих элементов. Адаптер обеспечивает прямую блокировку ссылок на элементы в общем наборе данных.Что происходит, когда источник данных адаптеров недействителен во время компоновки?
Теперь набор данных может измениться из-под адаптера. В этом случае адаптер будет недействительным при изменении набора данных. Однако возможно, что данные недействительны, тогда как пользовательский интерфейс находится в стадии ничьей или макета.
Вопрос в том, что произойдет, если другой поток аннулирует набор данных, когда представление выполняет итерацию через его дочерние элементы (getView вызывается и к нему подключается адаптер)?
Мы можем предположить, что данные поддержка является общим, и, следовательно, может измениться. Когда он изменяется, обратный вызов на адаптере запускается асинхронно. Этот обратный вызов делает недействительным адаптер. –