游标不工作列表视图

Cursor does not work listview

我有这个方法来填充列表视图

private void llenarLista() {
    SQLiteDatabase bd= SQLiteDatabase.openDatabase(Environment.getExternalStorageDirectory().getAbsolutePath() + "/SuperStock/SuperStock.db", null, 0);
    Cursor cursor = bd.rawQuery("select _id, cod_cliente, nom_cliente, fecha, estado_envio,estado, total_final from pedidos where estado_envio='pendiente' ORDER BY fecha DESC", null);
    if(cursor.moveToFirst()) {
        adaptador = new AdaptadorListaPedidos(ConsultarPedidos2.this, cursor);
        lista.setAdapter(adaptador);
    }
    else
        mensaje("Linea 66","cursor vacio");

    cursor.close();
    bd.close();
}

但是我的游标有问题,当你运行cursor.close()的时候列表是空的,而注释掉的时候是//cursor.close行(),列表是显示人口稠密。我在滥用光标?有人可以帮忙吗?

您不能 close() Cursor 正在被 CursorAdapter 使用。请:

  • 在后台线程上打开数据库一次

  • 运行 您在后台线程上的查询,也许是打开数据库的同一线程

  • 完成 CursorAdapter 后关闭光标,例如 activity 的 onDestroy() 或托管 [=15= 的片段]

  • 关闭数据库,如果可行的话,当你用完数据库时(根据定义,这是在你用完从数据库中得到的 Cursor 之后的某个时间)