Penyedia materi

Penyedia konten dapat membantu aplikasi mengelola akses ke data yang disimpan dengan sendirinya, yang disimpan oleh aplikasi lain, dan memberikan cara untuk membagikan data ke aplikasi lain. Mereka membungkus data, dan menyediakan mekanisme untuk mendefinisikan keamanan data. Penyedia materi adalah antarmuka standar yang menghubungkan data dalam satu proses dengan kode yang berjalan dalam proses lain. Mengimplementasikan penyedia konten memiliki banyak keuntungan. Yang terpenting, Anda dapat mengonfigurasi penyedia konten agar memungkinkan aplikasi lain mengakses dan memodifikasi data aplikasi Anda secara aman seperti yang diilustrasikan pada gambar 1.

Diagram ringkasan tentang cara penyedia konten mengelola akses ke penyimpanan.

Gambar 1. Diagram ringkasan tentang cara penyedia konten mengelola akses ke penyimpanan.

Gunakan penyedia konten jika berencana membagikan data. Jika tidak berencana membagikan data, Anda masih bisa menggunakannya karena penyedia konten tersebut menyediakan abstraksi yang bagus, tetapi Anda tidak harus melakukannya. Abstraksi ini memungkinkan Anda melakukan modifikasi pada implementasi penyimpanan data aplikasi tanpa mempengaruhi aplikasi yang sudah ada lainnya yang mengandalkan akses ke data Anda. Dalam skenario ini, hanya penyedia konten Anda yang terpengaruh dan bukan aplikasi yang mengaksesnya. Misalnya, Anda dapat menukar database SQLite untuk penyimpanan alternatif seperti yang diilustrasikan pada gambar 2.

Ilustrasi migrasi penyimpanan penyedia konten.

Gambar 2. Ilustrasi migrasi penyimpanan penyedia konten.

Sejumlah kelas lain bergantung pada class ContentProvider:

Jika Anda menggunakan salah satu dari kelas tersebut, Anda juga perlu mengimplementasikan penyedia konten dalam aplikasi Anda. Ingat bahwa saat menggunakan framework adaptor sinkronisasi, Anda juga dapat membuat penyedia konten rintisan sebagai alternatif. Untuk informasi selengkapnya tentang topik ini, lihat Membuat penyedia konten rintisan. Selain itu, Anda perlu penyedia konten Anda sendiri pada beberapa kasus berikut:

  • Anda ingin mengimplementasikan saran penelusuran kustom dalam aplikasi Anda
  • Anda perlu menggunakan penyedia konten untuk mengekspos data aplikasi Anda ke widget
  • Anda ingin menyalin dan menempelkan data atau file yang kompleks dari aplikasi Anda ke aplikasi lain

Framework Android mencantumkan penyedia konten yang mengelola data seperti audio, video, gambar, dan informasi kontak pribadi. Anda bisa melihat sebagian informasi ini tercantum dalam dokumentasi referensi untuk paket android.provider . Dengan beberapa batasan, semua penyedia ini bisa diakses oleh aplikasi Android apa saja.

Penyedia konten dapat digunakan untuk mengelola akses ke beragam sumber penyimpanan data, termasuk data terstruktur, seperti database relasional SQLite, atau data tidak terstruktur seperti file gambar. Untuk informasi selengkapnya tentang tipe penyimpanan yang tersedia di Android, lihat Opsi penyimpanan, sama seperti Mendesain penyimpanan data.

Keuntungan penyedia konten

Penyedia konten menawarkan kontrol granular atas izin untuk mengakses data. Anda dapat memilih untuk membatasi akses ke penyedia konten dari hanya dalam aplikasi, memberikan izin umum untuk mengakses data dari aplikasi lain, atau mengonfigurasi berbagai izin untuk membaca dan menulis data. Untuk informasi selengkapnya tentang menggunakan penyedia konten secara aman, lihat Tips keamanan untuk menyimpan data, dan juga Izin penyedia konten.

Anda dapat menggunakan penyedia konten untuk meringkas detail untuk mengakses berbagai sumber data di aplikasi Anda. Misalnya, aplikasi Anda dapat menyimpan catatan terstruktur dalam database SQLite, serta file video dan audio. Anda bisa menggunakan penyedia konten untuk mengakses semua data ini, jika Anda mengimplementasikan pola pengembangan ini pada aplikasi Anda.

Juga ingat bahwa objek CursorLoader bergantung pada penyedia konten untuk menjalankan kueri asinkron dan kemudian menampilkan hasil untuk layer UI aplikasi Anda. Untuk informasi selengkapnya tentang menggunakan CursorLoader untuk memuat data di latar belakang, lihat Menjalankan kueri dengan CursorLoader.

Topik-topik berikut menjelaskan penyedia materi secara lebih detail:

Dasar-dasar penyedia konten
Cara mengakses dan memperbarui data menggunakan penyedia konten yang ada.
Membuat penyedia konten
Cara mendesain dan mengimplementasikan penyedia konten Anda sendiri.
Penyedia kalender
Cara mengakses Penyedia kalender yang merupakan bagian dari platform Android.
Penyedia kontak
Cara mengakses penyedia Kontak yang merupakan bagian dari platform Android.

Untuk kode contoh yang terkait dengan halaman ini, rujuk pada aplikasi contoh Adapter Sinkron Dasar.