この Vogella チュートリアルに従っていくつかのデータ アクセス オブジェクトを作成しましたが、そのうちの 1 つに問題があります。アプリの再開時にいくつかのクエリを実行すると、タイトルにエラーが表示されることがあります。具体的には、次の形式の 3 つのメソッドを実行します。
public List<Event> getPendingEvents() {
openReadable();
List<Event> events = new ArrayList<Event>();
Cursor cursor = localDb.query(EventTable.TABLE_EVENT,
allColumns, allColumns[8] + " = ?", new String[] {"pending"}, null, null, null);
cursor.moveToFirst(); // crash here: Cannot perform this operation because the connection pool has been closed.
while (!cursor.isAfterLast()) {
events.add(cursorToEvent(cursor));
cursor.moveToNext();
}
cursor.close();
return events;
}
そして、それらがすべて実行された後、データベース接続を閉じます。クエリの後に接続プールが閉じるのはなぜですか? 理由が思いつかなくて困っています。データベースファイルのサイズに何らかの関係があるのでしょうか? 特にテーブルは非常に小さい (< 50 レコード) ですが、他のテーブルが影響を与える可能性はありますか? 私の他の唯一の考えは、それが onResume の仕組みと関係があるということです。
誰でも何か考えがありますか?