Jika aplikasi mengelola data dan kebutuhan untuk mengekspos bahwa data ke aplikasi lain berjalan di lingkungan Android, Anda harus mempertimbangkan ContentProvider. Jika komponen aplikasi (Activity, Service, atau BroadcastReceiver) kebutuhan untuk mengakses data dari aplikasi lain, komponen mengakses aplikasi lainnya ContentProvider. The ContentProvider menerapkan satu set standar metode untuk memungkinkan aplikasi untuk mengakses menyimpan data. Akses mungkin untuk membaca atau menulis operasi, atau untuk keduanya. Sebuah ContentProvider dapat menyediakan data untuk Kegiatan atau Layanan dalam aplikasi yang mengandung sama, serta ke Activity atau Layanan terkandung
dalam aplikasi lain. Sebuah ContentProvider dapat menggunakan bentuk data-mekanisme penyimpanan yang tersedia pada Platform Android, termasuk file, database SQLite, atau bahkan hash memori berbasis peta jika data ketekunan tidak diperlukan. The ContentProvider adalah lapisan data yang menyediakan
Data abstraksi untuk klien dan penyimpanan sentralisasi dan rutinitas pengambilan dalam tunggal tempat. Berbagi file atau database secara langsung tidak disarankan pada platform Android, dan ditegakkan oleh sistem keamanan Linux yang mendasari, yang mencegah ad hoc akses file dari satu ruang aplikasi yang lain tanpa izin eksplisit diberikan. Data yang tersimpan dalam ContentProvider dapat data tradisional jenis, seperti bilangan bulat dan
string. Penyedia konten juga dapat mengelola data biner, seperti data citra. ketika Data biner diambil, praktek terbaik yang disarankan adalah untuk mengembalikan string yang mewakili nama file yang berisi data biner. Jika nama file dikembalikan sebagai bagian dari ContentProvider permintaan, aplikasi tidak harus mengakses file secara langsung, Anda harus
menggunakan kelas pembantu, metode openInputStream ContentResolver, untuk mengakses Data biner. Pendekatan ini menavigasi proses Linux dan rintangan keamanan, serta membuat semua akses data normal melalui ContentProvider. Gambar 1,5 garis hubungan antara ContentProviders, menyimpan data, dan klien mereka. Data Sebuah ContentProvider yang diakses oleh sebuah aplikasi Android melalui suatu Konten URI. Sebuah ContentProvider mendefinisikan URI ini sebagai final String public static. untuk Sebagai contoh, aplikasi mungkin memiliki menyimpan data mengelola lembar data keamanan bahan. URI Konten untuk ContentProvider ini mungkin terlihat seperti ini: Uri public static final CONTENT_URI = Uri.parse (“konten / com.msi.manning.provider.unlockingandroid / lembar data”); Dari titik ini, mengakses ContentProvider mirip dengan menggunakan Structured Query Language (SQL) di platform lain, meskipun pernyataan SQL lengkap tidak dipekerjakan. Sebuah permintaan yang disampaikan kepada ContentProvider, termasuk kolom
diinginkan dan opsional mana dan Order By klausa. Mirip dengan query parameter dalam SQL tradisional, substitusi parameter juga didukung ketika bekerja dengan ContentProvider kelas. Di mana hasil dari query pergi? Dalam kelas kursor, alami. Kami akan memberikan contoh ContentProvider rinci dalam bab 5.
CATATAN Dalam banyak hal, ContentProvider bertindak seperti server database.
Meskipun aplikasi bisa berisi hanya ContentProvider dan esensi menjadi server database, ContentProvider biasanya komponen dari Android aplikasi yang lebih besar yang host setidaknya satu Kegiatan, Layanan, atau BroadcastReceiver.
Referensi : Buku Manning . Android ic Action 3rd