1

sqlite db がクラッシュするのを防ぐ方法はありますか? アイテムを含むリストビューがあります。ボタンをクリックすると、項目がデータベースに保存されます。しかし、リストに多くの製品があり、保存ボタンを非常に速くクリックすると、アプリケーションがフリーズします。後でデータベースをチェックすると、すべてのアイテムが複数回保存されます。

誰かが答えを知っていますか?

コード: isProdAlreadyFavorite を使用して、データベースが ID を持つエントリを既に取得しているかどうかを確認します...ボタンをクリックすると、彼はこの関数を実行します..

public void addFavProducten(ArrayList<Product> producten) {
    db = this.getWritableDatabase();

    db.beginTransaction();
    try {
        for (Product product : producten) {
            if (!isProdAlreadyFavorite(product.getProductid())) {
                ContentValues cv = new ContentValues();
                cv.put(Constanten.FAV_PROD_COLUMN_PRODUCTID,
                        product.getProductid());
                db.insert(Constanten.TABLE_FAVPROD, null, cv);
            }
        }
        db.setTransactionSuccessful();
    } catch (Exception e) {
        db.endTransaction();
    } finally {
        db.endTransaction();
        db.close();
    }
}
4

0 に答える 0