Bạn cần sử dụng các giao dịch khi ghi vào cơ sở dữ liệu sqlite, nếu không nó sẽ giữ nguyên dữ liệu cho mỗi lần chèn, tức là lưu nó vào sd sẽ mất "mãi mãi".
ví dụ:tạo insertProduct lấy một danh sách các sản phẩm và lưu chúng trong một giao dịch:
private void insertProducts(List<Product> products) {
try {
db.beginTransaction();
for(Product product : products) {
insertProduct(...);
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
Đây là cách bạn có thể triển khai nó trong mã hiện tại của mình:
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();
}
}