事务完成后的Android SQLite回调

事务完成后的Android SQLite回调,android,sqlite,callback,listener,Android,Sqlite,Callback,Listener,正在寻找解决我在Android中遇到的SQLite错误的方法。基本上,在某些情况下,我运行一个insert查询,然后关闭我所在的活动并转到下一个活动。关闭活动需要确保SQLiteDatabase已停止,因此在活动中暂停会停止数据库 然而,我正在努力让应用程序等待交易完成。我看到存在一个,但它的onCommit方法是在提交之前调用的,这在我的脑海中留下了一个可能性,即在某些情况下,我最终会遇到相同的问题 当事务关闭时,如何获得回调以便延迟关闭数据库对象 public void insertArra

正在寻找解决我在Android中遇到的SQLite错误的方法。基本上,在某些情况下,我运行一个insert查询,然后关闭我所在的活动并转到下一个活动。关闭活动需要确保SQLiteDatabase已停止,因此在活动中暂停会停止数据库

然而,我正在努力让应用程序等待交易完成。我看到存在一个,但它的onCommit方法是在提交之前调用的,这在我的脑海中留下了一个可能性,即在某些情况下,我最终会遇到相同的问题

当事务关闭时,如何获得回调以便延迟关闭数据库对象

public void insertArrayList(SQLiteDatabase db, String Table, ArrayList<ArrayList<String>> tableData, Boolean clear) {
    Logg.d("Start");
    Cursor cols = db.rawQuery("select * from " + Table + " limit 0",null);
    db.beginTransaction();
    try {
        if (clear) {db.execSQL("delete from " + Table);}
        int Xtra = cols.getColumnCount() - tableData.get(0).size();
        for (ArrayList<String> item : tableData) {
            for (int a=0;a<Xtra;a++) {item.add("");}
            db.execSQL("insert into " + Table + " values " + rowValues(item) + ";");
            //Logg.i("insert into " + Table + " values " + rowValues(item) + ";");
        }
        db.setTransactionSuccessful();

    } catch (Exception e) {
        Logg.e("Error: " + e.getMessage());
    } finally {
        db.endTransaction();
        Logg.d("Finish");
    }
}

不要停止数据库!使用存储在自定义应用程序类中的相同数据库。因此,只要应用程序打开并在Terminate()上关闭它,它就是打开的。

我将我的应用程序转换为以单例模式使用SQLiteOpenHelper,其中包含SqLiteDatabase对象。太棒了!记住在应用程序终止时关闭它。
@Override
public void onPause() {
    if (db != null) {
        Logg.d("SQLite db closing");
        db.close();
    }
    super.onPause();
}