不关闭游标的Android缺点(android disadvantages of not closi

2019-06-26 22:55发布

我有一些相关问题Cursor

我想知道是不是关闭的缺点Cursor

它重新分配资源,但释放什么资源?

如果我们不关闭Cursor ? 会有什么后果,到什么程度?

不关闭Cursor不影响Activity了一下,但它在日志猫给人错误。

Answer 1:

关闭Cursor将避免任何潜在的内存泄漏,所以他们应始终使用时不再是封闭的。



Answer 2:

光标只是一个接口。 这在很大程度上取决于执行情况,有什么具体的类,它实现您所使用的接口...

在SQLiteCursor的情况下,有相当多的事情让清理后(这是从升级Froyo):

@Override
public void close() {
    super.close();
    deactivateCommon();
    mQuery.close();
    mDriver.cursorClosed();
}

不关闭你的光标,数据仍然应该是一致的,但你会泄漏内存...



Answer 3:

我不认为你会看到从忘记关闭一个游标的许多问题。 这个问题(这也适用于几乎所有的内存泄漏)是,如果你保持一遍又一遍做,最终要出事。

例如,我写了一个应用程序从设备的的SQLite数据库是数据上传到服务器。 如果我不关闭游标每次我做阅读并从数据库中写入的时间,最终我会遇到内存不足,错误和其他各种问题。



Answer 4:

如果不关闭游标,那么你将有访问您的数据的问题在你的数据库,因为在数据库是开放的,它不应该访问的东西发生这样的活动被暂停或以其他方式。 特别是,如果你让活动管理它这个问题可以缓解。



文章来源: android disadvantages of not closing cursor