Sobes.tech
Junior — Middle

Можете ли објаснити принцип рада Content Provider-а у Android-у и како он комуницира са другим компонентама апликације?

sobes.tech АИ

Одговор од АИ

Content Provider u Androidu je komponenta koja pruža mehanizam za razmenu podataka između aplikacija. On inkapsulira pristup podacima (npr. bazi podataka SQLite, fajlovima ili drugim izvorima) i pruža standardni interfejs za čitanje i pisanje podataka putem URI.

Princip rada:

  • Podaci su dostupni putem URI-ja koji identifikuju specifične resurse.
  • Za pristup podacima koriste se metode: query(), insert(), update(), delete(), getType().
  • Drugi komponenti (ili aplikacije) pristupaju Content Provider-u putem ContentResolver-a, koji deluje kao posrednik.

Interakcija sa drugim komponentama:

  • Aplikacija koja želi da dobije podatke koristi ContentResolver i URI Content Provider-a.
  • Content Provider obrađuje zahteve i vraća podatke u obliku Cursor-a ili drugih formata.
  • Ovo omogućava siguran i standardizovan razmenu podataka između aplikacija.

Primer korišćenja ContentResolver-a za čitanje kontakata:

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("Ime kontakta: $name")
    }
    cursor.close()
}