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