No seu caso
CursorAdapter
é mais apropriado quando existe um banco de dados porque não carrega todos os registros como ArrayAdapter
. Ele carrega apenas os registros visíveis ou os registros que você está consultando. Aqui está a documentação do CursorAdapter:
Adaptador que expõe dados de um Cursor para um widget ListView.
O Cursor deve incluir uma coluna chamada "_id" ou esta classe não funcionará. Além disso, usar MergeCursor com essa classe não funcionará se os cursores mesclados tiverem valores sobrepostos em suas colunas "_id".
A partir do documento do provedor de conteúdo, pode não ser útil para você.
Você não precisa de um provedor para usar um banco de dados SQLite se o uso for inteiramente dentro de seu próprio aplicativo.
Você pode escolher
CursorAdapter
sobre ArrayAdapter
.