我有一些相关问题Cursor
。
我想知道是不是关闭的缺点Cursor
?
它重新分配资源,但释放什么资源?
如果我们不关闭Cursor
? 会有什么后果,到什么程度?
不关闭Cursor
不影响Activity
了一下,但它在日志猫给人错误。
我有一些相关问题Cursor
。
我想知道是不是关闭的缺点Cursor
?
它重新分配资源,但释放什么资源?
如果我们不关闭Cursor
? 会有什么后果,到什么程度?
不关闭Cursor
不影响Activity
了一下,但它在日志猫给人错误。
关闭Cursor
将避免任何潜在的内存泄漏,所以是他们应始终使用时不再是封闭的。
光标只是一个接口。 这在很大程度上取决于执行情况,有什么具体的类,它实现您所使用的接口...
在SQLiteCursor的情况下,有相当多的事情让清理后(这是从升级Froyo):
@Override
public void close() {
super.close();
deactivateCommon();
mQuery.close();
mDriver.cursorClosed();
}
不关闭你的光标,数据仍然应该是一致的,但你会泄漏内存...
我不认为你会看到从忘记关闭一个游标的许多问题。 这个问题(这也适用于几乎所有的内存泄漏)是,如果你保持一遍又一遍做,最终要出事。
例如,我写了一个应用程序从设备的的SQLite数据库是数据上传到服务器。 如果我不关闭游标每次我做阅读并从数据库中写入的时间,最终我会遇到内存不足,错误和其他各种问题。
如果不关闭游标,那么你将有访问您的数据的问题在你的数据库,因为在数据库是开放的,它不应该访问的东西发生这样的活动被暂停或以其他方式。 特别是,如果你让活动管理它这个问题可以缓解。