2012-03-03 2 views
0

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

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(); 
    } 
} 
+0

Вам нужно закрыть базу данных. Добавьте 'db.close()' после 'helper.close()' – debracey

ответ

1

Изменить

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

в

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

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

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

Кроме того, я полагаю, вы можете объявлять «курсор» как локальную переменную ins tead глобального и передать его как аргумент вашему методу 'curs'

Смежные вопросы