从几天开始,我面临奇怪的例外,
IllegalStateException : database not opened.
实际上我正在从多个线程更新数据库,所以可能是我在关闭后更新数据。所以请任何人告诉我如何为sqlite数据库应用锁定和解锁机制。
这里有一个数据库功能。请告诉我有什么不对劲的。
if(cBookmark != null && !checkIfBookmarkExists(cBookmark)){
SQLiteDatabase sqLiteDatabase = null;
try{
sqLiteDatabase = mDatabaseHelper.getWritableDatabase();
SQLiteStatement sqLiteStatement = sqLiteDatabase.compileStatement(
"insert into chart_bookmark ( "+
"package_id , chart_id , chart_title , offset_x, offset_y, zoomlevel )"+
"Values( ?,?,?,?,?,?)");
synchronized(sqLiteStatement){
sqLiteStatement.bindString(1, cBookmark.getPackage_id());
sqLiteStatement.bindString(2,cBookmark.getChart_id());
sqLiteStatement.bindString(3, cBookmark.getChartTitle());
sqLiteStatement.bindString(4, cBookmark.getOffsetX());
sqLiteStatement.bindString(5,cBookmark.getOffsetY());
sqLiteStatement.bindLong(6,cBookmark.getZoomlevel());
Log.v(TAG, ""+cBookmark.getChart_id()+cBookmark.getChartTitle()+
cBookmark.getOffsetX()+cBookmark.getOffsetY());
sqLiteStatement.execute();
sqLiteStatement.close();
}
}finally{
sqLiteDatabase.releaseReference();
}
}
答案 0 :(得分:4)
此链接可能对您有所帮助......
Android sqlite concurrency without exceptions
但是,请你详细说明你的问题!
祝你好运!编辑:
找到与您的问题相关的新链接...