1. Penyedia Konten tidak Aman untuk Thread
Secara default, penyedia konten tidak aman untuk thread. Jika Anda memiliki beberapa utas menggunakan penyedia konten, Anda dapat melihat banyak pengecualian berbeda yang dilemparkan dan ketidakkonsistenan data lainnya. Cara termudah untuk memperbaikinya adalah dengan menggunakan kata kunci tersinkronisasi di setiap metode publik yang diekspos oleh penyedia konten.
Dengan cara ini, hanya satu utas pada satu waktu yang dapat mengakses metode ini.
2. Bersenang-senanglah saat melakukan banyak penulisan
Saya memiliki kebutuhan dalam aplikasi Serval Maps baru untuk mengimpor data dari file biner ke dalam database yang digunakan secara internal oleh aplikasi. Untuk melakukan ini dan bermain bagus dengan aplikasi lainnya, yang terbaik adalah:
Menelurkan utas baru untuk melakukan impor sehingga utas lain tidak terkena dampak negatif, terutama utas yang bertugas memperbarui UI; dan Jeda sebentar di akhir setiap impor untuk memberikan kesempatan lain kepada utas lain yang perlu menggunakan metode tersinkronisasi.
3. Penyedia konten terkadang memaksa Anda untuk berpikir lateral
Cara kerja penyedia konten di Android adalah menyediakan lapisan abstraksi antara kode Anda yang lain dan database yang mendasarinya. Hal ini terutama disebabkan oleh fakta, sejauh yang saya tahu, bahwa penyedia konten dapat mengakses data dari tempat selain database.
Ini berarti Anda tidak dapat mengeksekusi kueri SQL mentah pada database yang mendasarinya dan Anda perlu menentukan berbagai komponen kueri SQL menggunakan variabel yang diteruskan ke berbagai metode seperti metode kueri. Jika Anda memiliki tugas yang tidak sesuai dengan cara SQL ditangani oleh penyedia materi, Anda memiliki dua opsi:
Pikirkan secara lateral tentang kueri, mungkin Anda bisa mendapatkan data yang Anda butuhkan dengan kueri alternatif dan mengakses hasil dari kursor; dan Gunakan URI untuk mengakses data secara normal dan URI khusus yang cocok dengan kueri tertentu untuk tugas-tugas yang tidak memiliki alternatif.