Sobes.tech
Junior — Middle

Můžete vysvětlit princip fungování Content Provider v Androidu a jak komunikuje s ostatními komponentami aplikace?

sobes.tech AI

Odpověď od AI

Content Provider v Androidu je komponenta, která poskytuje mechanismus pro výměnu dat mezi aplikacemi. Inkapsuluje přístup k datům (například do databáze SQLite, souborů nebo jiných zdrojů) a poskytuje standardní rozhraní pro čtení a zápis dat přes URI.

Princip fungování:

  • Data jsou dostupná přes URI, které identifikují konkrétní zdroje.
  • Pro přístup k datům se používají metody: query(), insert(), update(), delete(), getType().
  • Další komponenty (nebo aplikace) mají přístup k Content Provider přes ContentResolver, který funguje jako prostředník.

Interakce s ostatními komponentami:

  • Aplikace, která chce získat data, používá ContentResolver a URI Content Provideru.
  • Content Provider zpracovává požadavky a vrací data ve formě Cursor nebo jiných formátů.
  • To umožňuje bezpečnou a standardizovanou výměnu dat mezi aplikacemi.

Příklad použití ContentResolver pro čtení kontaktů:

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("Jméno kontaktu: $name")
    }
    cursor.close()
}