在实现 LoaderManager.LoaderCallbacks 的 ListFragment 中打开和关闭数据库资源的最佳位置是哪个?
我有一个实现的列表片段LoaderManager.LoaderCallbacks<Cursor>
。现在我初始化加载器onActivityCreated
并onCreateLoader
返回一个加载器(MyLoader)。MyLoader 类打开数据库资源。然后将 Cursor 对象返回到 onLoadFinished
. 在这里我可以在哪里关闭我打开的数据库,因为在光标返回到 onLoadFinished 之前我们无法关闭数据库。
很多人说,在Activity onResume 中打开数据库资源,在onPause 中关闭是最好的。但是如果我使用AsynctaskLoaders 如何关闭数据库资源呢?
我收到以下错误,
close() was never explicitly called on database 'mydb'
android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1849)