我打算第一次使用Android SQLite。
Cursor c = db.rawQuery("some select command here", null);
// some jobs with the cursor..
c = db.rawQuery("another select command here", null);
// some jobs with the cursor..
c.close();
db.close();
c = null;
db = null;
如您所见,我试图多次调用rawQuery()方法。
在调用rawQuery()方法 AGAIN 之前,是否必须关闭光标?
关闭游标和数据库后,是否必须为变量赋值?
答案 0 :(得分:7)
在调用rawQuery()方法之前,是否必须关闭光标?
完成阅读后关闭光标。这是为了释放光标打开的资源,所以是的,你应该在第二个查询之前关闭第一个光标。
关闭光标和数据库后,我是否必须为变量赋值?
这取决于变量的范围。如果您的代码看起来像这样......
class Foo {
void doSomething() {
SQLiteDatabase db = ...
Cursor c = db.rawQuery...
// other stuff
c.close();
db.close();
}
}
...然后确实没有必要将它们归零,因为当方法完成执行时它们会立即超出范围。但是您的实际代码可能看起来不同。如果您有某些理由想要允许这些对象被垃圾收集,那么您可以将变量置空。