데이터베이스를 닫을 때 데이터베이스를 만들 수 없습니다 (아래의 코드를 확인하십시오). 만약 내가 그것을 닫지 않으면 모든 것이 잘 작동하지만 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()
를 호출하고 내 응용 프로그램이 제대로에서 실행해야합니까?)()
적어도 10-15 줄의 logcat 출력을 게시하십시오. –