ListView vacío si SimpleCursorAdapter cerrado ()

Tengo un problema para entender por qué mi ListActivity y su correspondientevista de la list vacío cuando llamo acerca( método encurso objeto?

Déjame explicarme un poco ...

Recupero algunos valores de una base de datos y obtengo el resultado en mi objeto cursor. Después de eso creo mi SimpleCursorAdapter y enlazar columna de db con un campo en mivista de la list.

Funciona como un encanto, pero ...

Si llamo a cursor.close () al final deonCreate () método mi listView se muestra vacío?

Si registro los valores del cursor en LogCat, estarán allí hasta que llame a cursor.close () y eso tiene mucho sentido, pero ¿por qué el listAdapter se vacía cuando cursor.close () ¿¿¿se llama??? Yo esperaríaListAdapter listAdapter = new SimpleCursorAdapter (...) para mantener los valores que están "vinculados" a unavista de la list hasta que la actividad se destruya ...

¿Por qué esto es tan? ¿Cuándo y por qué es necesario cerrar el cursor?

public class ListTrainingsView extends ListActivity{
private SQLiteDatabase db;
private ListAdapter  listAdapter;
private Cursor cursor;

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_trainings);

    DatabaseHelper helper = new DatabaseHelper(this);

    this.db = helper.getWritableDatabase();

    this.cursor = db.query("trainings", fields, null, null, null, null, null);

    startManagingCursor(cursor);

    this.listAdapter = new SimpleCursorAdapter(this,
            R.layout.list_trainings_item, 
            cursor, 
            new String[] {"name"},
            new int[] { R.id.name_entry}
    );

    this.setListAdapter(this.listAdapter);

//If I call 
//cursor.close();
//shown list is empty

Otra pregunta es más del tipo de pregunta básica del lenguaje Java ... Vengo de PHP OO background y allí, si define la variable miembro, tiene que trabajar con ella en métodos de objetos usando la sintaxis $ this-> cursor. Me di cuenta de que en Android / Java no tengo que usar this.cursor.getCount () para obtener la referencia / valor de ella. Es suficiente decir cursor.getCount () ¿Cómo es que esto está permitido?

Respuestas a la pregunta(2)

Su respuesta a la pregunta