網頁

2011年10月21日 星期五

Android錯誤排除_close() was never explicitly called on database

如果使用SQLite儲存資料,然後在除錯時都會去看log了話,就有可能看到一個錯誤訊息:"close() was never explicitly called on database"。

原因:開啟連線,但未關閉。

解決方法:
1. 於適當的地方呼叫SQLiteOpenHelper的close()方法。
2. 所謂適當的地方,也就是我們使用完的時候,通常是在Activity關閉時;所以可以複寫onDestroy方法,判斷SQLiteOpenHelper是否存在,若存在則將其關閉。

@Override
protected void onDestroy() {
super.onDestroy();
if (dbHelper != null)
{
dbHelper.close();
}
}

沒有留言:

張貼留言