J'ai une activité qui gère les imprimantes de mon université. Les imprimantes peuvent être téléchargées sur Internet et sont ensuite stockées dans une base de données SQLite. Le problème est qu'il y a environ 500 entrées de base de données qui doivent être faites pour les stocker, ce qui, avec mon code, prend beaucoup de temps (environ 30s sur un Google Nexus S). Mon code pour le faire est le suivant :
printerDB = new PrinterListOpenHelper(this);
SQLiteDatabase db = printerDB.getWritableDatabase();
db.execSQL("INSERT INTO destination (id, destination) VALUES(1,'BSAC240');");
db.execSQL("INSERT INTO destination (id, destination) VALUES(2,'BSAD152');");
...
Elle est suivie d'environ 500 rangées similaires. J'ai également essayé de le faire avec un seul
db.rawQuerry("INSERT INTO destination (id, destination) VALUES(1,'BSAC240');
INSERT INTO destination (id, destination) VALUES(2,'BSAD152');.......");
mais alors seule la première instruction INSERT est réellement exécutée.
Quelqu'un connaît-il une astuce pour rendre cela efficace ? Ou les bases de données Android sont-elles vraiment si lentes ?
Merci beaucoup pour votre aide ! Simon