Sobes.tech
Junior — Middle

Pode explicar o princípio de funcionamento do Content Provider no Android e como ele interage com outros componentes da aplicação?

sobes.tech IA

Resposta da IA

Content Provider no Android é um componente que fornece um mecanismo para troca de dados entre aplicações. Encapsula o acesso aos dados (por exemplo, a uma base de dados SQLite, ficheiros ou outras fontes) e fornece uma interface padrão para leitura e escrita de dados através de URI.

Princípio de funcionamento:

  • Os dados estão acessíveis através de URI, que identificam recursos específicos.
  • Para aceder aos dados, utilizam-se métodos: query(), insert(), update(), delete(), getType().
  • Outros componentes (ou aplicações) acedem ao Content Provider através do ContentResolver, que atua como intermediário.

Interação com outros componentes:

  • A aplicação que deseja obter dados usa o ContentResolver e o URI do Content Provider.
  • O Content Provider processa as requisições e devolve os dados em formato de Cursor ou outros formatos.
  • Isto permite trocar dados entre aplicações de forma segura e padronizada.

Exemplo de uso do ContentResolver para ler contactos:

val cursor = contentResolver.query(
    ContactsContract.Contacts.CONTENT_URI,
    null, null, null, null
)
if (cursor != null) {
    while (cursor.moveToNext()) {
        val name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))
        println("Nome do contacto: $name")
    }
    cursor.close()
}