Android convertView, para usá-lo ou não?
No artigoMultithreading para desempenho do Blog do desenvolvedor do Android,convertView
é usado emAdapter.getItem()
para exibir uma lista deImageView
, que são baixados por meio de HttpRequest. No entanto, também vejo alguns tutoriais do Android que não usam oconvertView
e apenas inflar uma nova visualização emAdapter.getItem()
.
Eu estou querendo saber qual é a vantagem de usarconvertView
? Como reciclar a exibição usada? Onde a exibição usada é armazenada em cache?
Eu faço essa pergunta porque não useiconvertView
no meu projeto e quero saber o custo por não usá-lo. Abaixo está minha implementação de uma lista de imagens.
Ao invés de usarconvertView
, Infle uma nova visualização emAdapter.getItem()
. Além disso, crio uma classe de wrapper para manter a equipe em cada item delistView
. Após o download da imagem, ela será armazenada como bitmap na classe de wrapper para cada item da lista (a imagem é pequena). Dessa forma, posso evitar o download duplicado da mesma imagem. E isso também evita os problemas de condição de corrida mencionadosMultithreading para desempenho. Mas ainda estou um pouco preocupado, há algum problema que não seja bom usando meu método?
FYI: o artigo recomendado por @Carl Anderson fornece detalhes sobre como o convertView funciona no adaptador. O IO do Google de Romain Guy, sugerido neste artigo, é outra boa referência.
Em uma palavra, o uso do convertView é otimizado para o espaço e o tempo. Além disso, abandonei meu próprio imageDownloader e usei o Picasso recomendado pelo @CommonsWare. Ele funciona como um encanto.