Alternativa C
A alternativa correta é a C, pois a maneira padrão e recomendada no Android para gerenciar a criação e versionamento de bancos de dados SQLite envolve a criação de uma classe personalizada que herde de SQLiteOpenHelper.
Análise Técnica
No ecossistema Android, o gerenciamento de banco de dados relacional segue um fluxo específico baseado na classe SQLiteOpenHelper. Para entender por que a alternativa C é a correta, é preciso compreender os papéis das classes envolvidas:
- SQLiteOpenHelper: É uma classe auxiliar abstrata que simplifica o gerenciamento de banco de dados. Ela lida com a criação e atualização do banco de dados.
- Subclassificação: Como
SQLiteOpenHelper é abstrata, não podemos instanciá-la diretamente. É obrigatório criar uma subclasse (ex: MeuBancoHelper) que estenda esta classe. - Método onCreate(): Dentro desta subclasse, devemos sobrescrever (alterar) o método
onCreate(SQLiteDatabase db). É neste método que as instruções SQL para criar as tabelas e estruturas iniciais são executadas.
Portanto, para "criar" um novo banco de dados funcional, o passo fundamental é definir essa estrutura através da subclasse e do método de inicialização.
Análise das Alternativas
| Alternativa | Avaliação | Motivo |
|---|
| A | Incorreta | Apenas obter uma instância do Helper não configura a estrutura do banco. É necessário primeiro definir a lógica de criação na subclasse. |
| B | Incorreta | Os métodos getWritableDatabase() e getReadableDatabase() servem para abrir conexões ao banco existente, não para defini-lo ou criá-lo inicialmente. |
| C | Correta | Descreve exatamente o mecanismo de inicialização: estender a classe auxiliar e implementar a lógica de criação no onCreate(). |
| D | Incorreta | A classe SQLiteDatabase é usada para interagir com o banco, mas não deve ser instanciada diretamente para gerenciar a criação e versões do banco; isso é função do SQLiteOpenHelper. |
Conclusão
A criação de um banco de dados no Android exige a definição prévia de como ele será estruturado. Isso é feito criando-se uma subclasse de SQLiteOpenHelper e sobrescrevendo o método onCreate(), onde o sistema executa os comandos de criação automática quando o banco é aberto pela primeira vez.