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.

0 ответов

Другие вопросы по тегам