【发布时间】:2011-12-20 10:27:58
【问题描述】:
当我关闭它时,我无法创建我的数据库(检查下面的代码)。如果我不关闭它,一切正常,但我在 logcat 中收到几个错误,说 close() 从未被明确调用过。如果我创建了数据库,然后添加了close(),这些错误就会消失,但我无法重新安装我的应用程序并使用它运行它。
private static class DbHelper extends SQLiteOpenHelper {
public DbHelper(Context context) {
super(context, DATABASE_score, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID
+ " INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, " + KEY_SCORE1
+ " INTEGER TEXT NOT NULL, " + KEY_SCORE2
+ " INTEGER TEXT NOT NULL);");
db.close(); <---problem
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
public Database(Context c) {
ourContext = c;
}
public Database open() throws SQLException {
ourHelper = new DbHelper(ourContext);
ourDatabase = ourHelper.getWritableDatabase();
return this;
}
public void close() {
ourHelper.close();
}
public long createEntry(String score, String score2) {
// TODO Auto-generated method stub
ContentValues cv = new ContentValues();
cv.put(KEY_SCORE1, score);
cv.put(KEY_SCORE2, score2);
return ourDatabase.insert(DATABASE_TABLE, null, cv);
}
所以问题是:我如何调用db.close() 并让我的应用程序正确运行?
【问题讨论】:
-
发布 logcat 输出,至少前 10-15 行。