SQLite
 sql >> база данни >  >> RDS >> SQLite

Как да вмъкнете голямо количество данни в sqlite база данни в Android

Както предложихте, броят на редовете е огромен, препоръчвам да не използвате AsyncTask , тъй като не е свързано с жизнения ви цикъл на активността, т.е. ако дейността, която я е започнала, умира, това не означава AsyncTask умира също, така че ако се опитате да стартирате AsyncTask и по някакъв начин ако дейността ви умре, например завъртане на екрана или натиснат клавиш назад, при рестартиране на друга AsyncTask ще се създаде, а след това да се свърже с вече изпълняващ се AsyncTask . следователно дублиране на същите операции.

Така че, като цяло бих препоръчал следния подход

(A)

  1. Създайте IntentService , това е handleIntent() api вече се изпълнява в работна нишка, така че не е нужно да се притеснявате за нищо и след като всички съобщения в опашката му приключат, той автоматично умира, така че изобщо не се притеснявайте за изтичане на ресурси.

  2. напишете логиката си за групово вмъкване на редове, използвайте api за преобразуване на съдържание bulkInsert() за същото. Ще ви препоръчам вмъкване на 100 роя на партида, можете да приложите връщане назад и проверки за грешки, за да сте сигурни, че вмъкването върви нормално.

  3. След като всички вмъквания приключат, можете да публикувате обратно в потребителския си интерфейс, като използвате Handler и Messenger.

с всичко това ще постигнете две големи предизвикателства

  1. За да не затворите потребителския си интерфейс, избягвайки всякакви възможни ANR
  2. Дори ако е натиснат клавишът за връщане назад, това гарантира, че db операцията протича гладко, тъй като е била заета във фоновата задача.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Наистина ли е необходимо да създавате SQLite таблици всеки път, когато приложението стартира?

  2. SQLite JSON_EXTRACT()

  3. SQLite Connection изтече, въпреки че всичко беше затворено

  4. JSON_INSERT() срещу JSON_SET() срещу JSON_REPLACE() в SQLite

  5. Как мога да разделя дълъг, единичен SQLiteOpenHelper на няколко класа, по един за всяка таблица