Почему курсор не закрывается в Android? - PullRequest
0 голосов
/ 03 марта 2012

Я пробовал все до единого, но все же кое-как не смог найти решения для этого.Несмотря на использование метода close, курсор все еще не закрывается.Это меня расстраивает.Любая помощь будет высоко ценится.Вот мой код

public class Order extends Activity{    

DatabaseHelper helper;
Cursor c;
SQLiteDatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.order);
    String columns[] = {"_id", "Name", "Price"};
     helper = new DatabaseHelper(this); 
    db=helper.getWritableDatabase();
     c=db.query("lite", columns, null, null, null, null, null);
c.moveToFirst();
curs();
 c.close(); 
 helper.close();
}
public void curs()
{

String r = "";
    while(!c.isAfterLast())
    {
        r=r + c.getString(c.getColumnIndex("_id")) + "   "+c.getString(c.getColumnIndex("Name"))+"   "+c.getString(c.getColumnIndex("Price"));
         c.moveToNext();
    }   
}

Ответы [ 2 ]

1 голос
/ 24 апреля 2012

Изменение

curs();
c.close(); 
helper.close();

до

curs();
if(!isClosed()){
     c.close(); 
     }
 helper.close();
 db.close();
0 голосов
/ 24 апреля 2012

Вы также не закрыли свою базу данных, попробуйте это

db.close();
c.close();
helper.close();

Кроме того, я предлагаю вам объявить «Курсор» как локальную переменную вместо глобальной и передать ее в качестве аргумента вашему методу «curs»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...