在我的应用程序中,我有一个 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/