gpt4 book ai didi

android - 每次调用 rawQuery() 时是否必须关闭 Cursor 对象?

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:52 24 4
gpt4 key购买 nike

我打算第一次使用 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() 方法。

  1. AGAIN 调用 rawQuery() 方法之前是否必须关闭游标?

  2. 是否必须像上面那样在关闭游标和数据库后将 null 分配给变量?

最佳答案

Do I have to close the cursor before I call rawQuery() method AGAIN?

读完后关闭游标。这是为了释放游标打开的资源,所以是的,您应该在第二次查询之前关闭第一个游标。

Do I have to assign null to the variables after closing the cursor and database like above?

这取决于变量的范围。如果您的代码看起来像这样...

class Foo {
void doSomething() {
SQLiteDatabase db = ...
Cursor c = db.rawQuery...
// other stuff
c.close();
db.close();
}
}

...那么将它们清零真的没有意义,因为当方法完成执行时它们将立即超出范围。但是您的实际代码可能看起来有所不同。如果您出于某种原因希望对这些对象进行垃圾回收,则可以清空这些变量。

关于android - 每次调用 rawQuery() 时是否必须关闭 Cursor 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31886025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com