我目前正在处理片段中的 ListViews。Listviews 由 Cursorloader 加载,但没有 ContentManager。所以代码看起来像这样并且它可以工作:
@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
Log.d("SoapERP", "onCreateLoader");
CursorLoader loader = new CursorLoader(getActivity()) {
final DBHelper dbhelper1= new DBHelper(getActivity());
@Override
public Cursor loadInBackground() {
Cursor c = null;
dbhelper1.open();
c = dbhelper1.fetchAllMatnameswithID();
// dbhelper1.close();
return c;
}
};
return loader;
我的问题是我收到一个 LogCat-Error-Message 数据库未关闭的消息。但是如果我使用 dbhelper.close(); 我收到错误“数据库已关闭”,这也是可以理解的,因为它就在 return 语句之前。在返回语句代码无法访问并且如果我声明 DBHelper dbhelper1 final 后程序崩溃,logcat 中没有任何信息。那我的失败是什么???