Sobes.tech
Junior — Middle

Môžete vysvetliť princíp fungovania Content Provider v Android a ako interaguje s ostatnými komponentmi aplikácie?

sobes.tech AI

Odpoveď od AI

Content Provider v Androidu je komponenta, ktorá poskytuje mechanizmus na výmenu údajov medzi aplikáciami. Inkapsuluje prístup k údajom (napríklad do databázy SQLite, súborov alebo iných zdrojov) a poskytuje štandardné rozhranie na čítanie a zápis údajov prostredníctvom URI.

Princíp fungovania:

  • Údaje sú dostupné prostredníctvom URI, ktoré identifikujú špecifické zdroje.
  • Na prístup k údajom sa používajú metódy query(), insert(), update(), delete(), getType().
  • Iné komponenty (alebo aplikácie) získavajú prístup k Content Provider prostredníctvom ContentResolver, ktorý funguje ako sprostredkovateľ.

Interakcia s inými komponentmi:

  • Aplikácia, ktorá chce získať údaje, používa ContentResolver a URI Content Provider.
  • Content Provider spracováva požiadavky a vracia údaje vo forme Cursor alebo iných formátov.
  • To umožňuje bezpečnú a štandardizovanú výmenu údajov medzi aplikáciami.

Príklad použitia ContentResolver na čítanie kontaktov:

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("Názov kontaktu: $name")
    }
    cursor.close()
}