作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在我的应用程序中,我有一个 ListView 。我通过 SQLiteDatabase 的查询获取数据。当我从数据库中获取数据时,我收到此错误:
它发生在我从第 20 行到第 21 行时。
我尝试将 cursor.deactivate() 和 cursor.close() 放在 regel 50 上。但没有结果。任何人都知道我为什么会收到此错误以及如何解决它?谢谢:)
最佳答案
你必须在数据库之前关闭游标。将您的代码放在 try
/catch
block 和 finally
block 中,关闭光标,然后关闭数据库:
try {
db = ...
} catch(Exception ex) {
// Log the exception's message or whatever you like
} finally {
try {
if( cursor != null && !cursor.isClosed())
cursor.close();
if( db.isOpen() )
db.close();
} catch(Exception ex) {}
}
在使用 DB 或 Content Provider 进行 IO 时,关闭顺序非常重要。欲了解更多信息,请参阅 this link
关于android - 光标在没有事先 close() Android 的情况下完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10434378/
嘿,我有一个任意的 SQL 查询。从这个查询开始,我想知道这个查询将访问或更改哪些表。可能定义了一些函数或触发器,这些函数或触发器还会更改查询中声明的表之外的其他表。 我考虑过创建一个不同的 mysq
我是一名优秀的程序员,十分优秀!