SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Bagaimana cara memasukkan sejumlah besar data dalam database sqlite di Android

Seperti yang Anda sarankan, jumlah baris sangat banyak, saya sarankan untuk tidak menggunakan AsyncTask , karena tidak terikat dengan siklus hidup Aktivitas Anda yaitu jika aktivitas Anda yang memulainya mati, itu tidak berarti AsyncTask mati juga, jadi jika Anda mencoba memulai AsyncTask dan entah bagaimana jika aktivitas Anda mati misalnya rotasi layar atau tombol kembali ditekan, setelah memulai ulang AsyncTask lain akan muncul daripada ditautkan ke yang sudah menjalankan AsyncTask . karenanya menduplikasi operasi yang sama.

Jadi, secara keseluruhan saya akan merekomendasikan pendekatan berikut

(A)

  1. Buat IntentService , ini handleIntent() api sudah dijalankan di utas pekerja sehingga Anda tidak perlu khawatir tentang apa pun, dan setelah semua pesan dalam antreannya selesai, api akan mati secara otomatis, jadi tidak perlu khawatir tentang kebocoran sumber daya apa pun.

  2. tulis logika Anda untuk menyisipkan baris dalam jumlah besar, gunakan penyelesai konten bulkInsert() api untuk hal yang sama. Saya akan merekomendasikan memasukkan 100 roes per batch, Anda dapat menerapkan rollback dan pemeriksaan kesalahan untuk memastikan penyisipan berjalan normal.

  3. Setelah semua penyisipan selesai, Anda dapat memposting kembali ke UI Anda menggunakan Handler dan Messenger.

dengan semua ini Anda akan mencapai dua tantangan besar

  1. Untuk tidak menutup UI Anda, menghindari kemungkinan ANR
  2. Bahkan jika tombol kembali ditekan, pastikan operasi db berjalan lancar seperti yang dilakukan di tugas latar belakang.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengatur setiap item yang diambil dari database SQLite menjadi Textview miliknya sendiri

  2. Format Hasil SQLite sebagai JSON

  3. Cara Memformat Hasil Kueri SQLite dalam Mode TCL

  4. java.lang.IllegalArgumentException:kolom '_id' tidak ada

  5. Android- Haruskah saya memeriksa apakah tabel ada di SqliteHelper.onCreate()?