Трябва да използвате транзакции, когато пишете в sqlite-база данни, в противен случай тя ще запази данните за всяко вмъкване, т.е. ще ги запази в sd, което ще отнеме "завинаги".
например, накарайте insertProduct да вземе списък с продукти и да ги запишете в една транзакция:
private void insertProducts(List<Product> products) {
try {
db.beginTransaction();
for(Product product : products) {
insertProduct(...);
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
Ето как можете да го внедрите в съществуващия си код:
private void insertDemoProducts() {
SQLiteDatabase sqlDB = database.getWritableDatabase();
try {
sqlDB.beginTransaction();
for (int i = 1; i <= 100000; ++i) {
String id = Integer.toString(i);
insertProduct(id, "Test product " + id, "100", "75.50", "70.27");
}
sqlDB.setTransactionSuccessful();
} finally {
sqlDB.endTransaction();
}
}