Ответ 1
Из андроидных документов - Объект Adapter действует как мост между AdapterView (например, ListView в вашем случае) и базовые данные для этого представления. Адаптер обеспечивает доступ к элементам данных и также отвечает за создание представления для каждого элемента в наборе данных.
Итак, всякий раз, когда ListView должен отображать определенную строку данных, он запрашивает связанный адаптер, чтобы предоставить представление, соответствующее тому, что данные в этой позиции с помощью метода getView(). Это может происходить всякий раз, когда представление необходимо обновлять на экране (например, во время создания/прокрутки и т.д.).
Как разработчик приложения, вам не нужно беспокоиться о том, в какой момент вызывается getView(), пока вы предоставляете конкретную реализацию getView() в своем адаптере. Убедитесь, что метод эффективен (миниатюры и т.д. Должны быть загружены в фоновый поток) для оптимальной производительности.