Penyedia konten dapat membantu aplikasi mengelola akses ke data yang disimpan oleh aplikasi itu sendiri atau yang disimpan oleh aplikasi lain, dan memberikan cara untuk berbagi data dengan aplikasi lain. Komponen ini membungkus data dan menyediakan mekanisme untuk menentukan keamanan data. Penyedia konten 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 aplikasi lain dapat mengakses dan mengubah data aplikasi Anda dengan aman, seperti yang diilustrasikan dalam gambar 1.
Gunakan penyedia konten jika berencana membagikan data. Jika tidak berencana berbagi data, Anda tidak harus menggunakannya, tetapi Anda mungkin memilih melakukannya karena menyediakan abstraksi yang memungkinkan Anda melakukan modifikasi pada implementasi penyimpanan data aplikasi tanpa memengaruhi aplikasi lain yang mengandalkan akses ke data Anda.
Dalam skenario ini, hanya penyedia konten Anda yang akan terpengaruh, bukan aplikasi yang mengaksesnya. Misalnya, Anda dapat menukar database SQLite dengan penyimpanan alternatif, seperti yang diilustrasikan dalam gambar 2.
Sejumlah class lain bergantung pada class ContentProvider
:
Jika menggunakan salah satu class ini, Anda perlu mengimplementasikan penyedia konten dalam aplikasi Anda. Saat menggunakan framework adaptor sinkronisasi, Anda juga dapat membuat penyedia konten stub sebagai alternatif. Untuk mengetahui informasi selengkapnya, lihat Membuat penyedia konten stub. Selain itu, Anda perlu penyedia konten Anda sendiri pada beberapa kasus berikut:
- Untuk menerapkan saran penelusuran kustom dalam aplikasi Anda.
- Untuk mengekspos data aplikasi Anda ke widget.
- Untuk menyalin dan menempelkan data atau file yang kompleks dari aplikasi Anda ke aplikasi lain.
Framework Android mencakup penyedia konten yang mengelola data seperti audio, video, gambar,
dan informasi kontak pribadi. Anda dapat melihat beberapa di antaranya tercantum dalam dokumentasi referensi untuk paket android.provider
. Dengan beberapa batasan, penyedia ini dapat diakses oleh semua aplikasi Android.
Penyedia konten dapat digunakan untuk mengelola akses ke berbagai sumber penyimpanan data, termasuk data terstruktur, seperti database relasional SQLite, atau data tidak terstruktur seperti file gambar. Untuk mengetahui informasi selengkapnya tentang jenis penyimpanan yang tersedia di Android, lihat Ringkasan penyimpanan data dan file serta Mendesain penyimpanan data.
Keuntungan penyedia konten
Penyedia konten menawarkan kontrol granular atas izin untuk mengakses data. Anda dapat memilih untuk membatasi akses hanya ke penyedia konten yang ada dalam aplikasi Anda, memberikan izin menyeluruh untuk mengakses data dari aplikasi lain, atau mengonfigurasi izin yang berbeda untuk membaca dan menulis data. Untuk mengetahui informasi selengkapnya tentang cara menggunakan penyedia konten dengan aman, lihat tips keamanan untuk penyimpanan data dan Izin penyedia konten.
Anda dapat menggunakan penyedia konten untuk memisahkan detail untuk mengakses berbagai sumber data dalam aplikasi Anda. Misalnya, aplikasi Anda mungkin menyimpan catatan terstruktur dalam database SQLite, serta file video dan audio. Anda dapat menggunakan penyedia konten untuk mengakses semua data ini.
Selain itu, objek CursorLoader
mengandalkan penyedia konten untuk menjalankan kueri asinkron, lalu menampilkan hasilnya ke lapisan UI di aplikasi Anda. Untuk informasi
selengkapnya tentang penggunaan CursorLoader
guna memuat data di latar belakang, lihat
Loader.
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.
- Ringkasan penyedia kalender
- Cara mengakses Penyedia Kalender yang merupakan bagian dari platform Android.
- Penyedia Kontak
- Cara mengakses Penyedia Kontak yang merupakan bagian dari platform Android.