为什么光标在android中没有关闭?

时间:2012-03-03 01:09:13

标签: android sqlite cursor

我一直在尝试每一件事,但仍有一些人无法找到解决方案。尽管使用了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 个答案:

答案 0 :(得分:1)

修改

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

curs();
if(!isClosed()){
     c.close(); 
     }
 helper.close();
 db.close();

答案 1 :(得分:0)

您还没有关闭数据库,试试这个

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

另外,我建议您可以将'Cursor'声明为局部变量而不是全局,并将其作为参数传递给您的方法'curs'