Android CursorLoader с проблемой ListView
Наконец, после нескольких уроков я включил отображение CursorLoader в ListView, но у меня есть несколько вопросов, которые, я надеюсь, вы, ребята, сможете помочь мне решить.
1) моя большая проблема заключалась в следующем:
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
if(uriMatcher.match(uri)==CUSTOMERS){
DB.open();
return DB.leer();
}
else
{
return null;
}
}
как вы можете видеть из моего класса Content Provider, моя проблема заключалась в том, что я не понимаю, нужно ли мне ОТКРЫТЬ мою БД. когда я помещаю код для открытия, БД работает для меня, но тогда я не знаю, нужно ли мне закрывать здесь или закрывать после этого:
@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1){
Uri uri = Contenido.CONTENT_URI;
return new CursorLoader(this, uri, null, null, null, null);
}
/** A callback method, invoked after the requested content provider returned all the data */
@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
mAdapter.swapCursor(arg1);
}
@Override
public void onLoaderReset(Loader<Cursor> arg0) {
mAdapter.swapCursor(null);
}
я должен поставить DB.close() в любом месте этой функции? Или, может быть, ниже этого:
getSupportLoaderManager().initLoader(0, null, this);
getSupport находится в пакете OnCreate. Я действительно не понимаю, нужно ли закрыть базу данных, которая открыта из запроса Cursor.