OrmLiteを使っandroid.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
て新規で始めると が出ます。Activity
私Cursor
自身は s を使用していないので、ORMLite が使用する低レベルのコードに違いありません。ここに関連するコードが何であるかはわかりませんが、基本的には、通常はトランザクション マネージャー内の 2 つの Dao オブジェクトで Query/DeleteBuilders を使用しています。問題につながる最小限の例 (例外処理が削除されました):
return new TransactionManager(connectionSource).callInTransaction(new Callable<List<ConversionData>>() {
public List<ConversionData> call() throws Exception {
QueryBuilder<ConversionData, Date> builder = getDataDao().queryBuilder();
builder.orderBy("date", /* desc */ true);
return builder.query();
}
});
Dao にも Builder にも close メソッドがないため、実際にどこで閉じる必要があるのか わかりません。
Activity
extendsには close メソッドがありますがOrmLiteBaseActivity
、他のアクティビティから戻ったときに再び開くにはどうすればよいでしょうか?