【问题标题】:Why we need to do cursor.close() when we finish use cursor in Android?为什么我们在 Android 中完成使用 cursor 后需要做 cursor.close()?
【发布时间】:2018-07-14 19:10:19
【问题描述】:

我在网上看了,我发现如果我不关闭游标,这会导致内存泄漏。但为什么? 什么原因导致内存泄漏?

【问题讨论】:

  • 尝试执行“anayze -> 检查代码 -> 您的文件”或查看文件编辑器右侧的黄色小勾号。 Android Studio 现在会在您忘记关闭光标时发出警告。此外,最好在 'try' 的 'finally' 子句中关闭它们,以防止它们被异常打开。
  • 如果我回答了您的问题,您可以将其标记为正确答案

标签: android sqlite memory memory-leaks cursor


【解决方案1】:

简单来说,假设您喝了几瓶苏打水。你是电话,汽水是数据库。每次喝完一杯,您都必须放下瓶子,然后再喝下一杯,否则您最终会洒出或掉落一些。当然,你可以在不把瓶子放下的情况下喝掉前两三个苏打水,但是一旦你超过了你可以处理的,就会变得一团糟。

同样的情况,你可以忽略cursor.close(),但是会出现手机内存无法处理打开的SQL数据库数量的情况。

这里还有一个answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 2012-03-09
    • 2019-04-26
    • 1970-01-01
    • 2018-01-07
    • 2020-02-08
    • 2019-06-09
    • 2011-07-05
    相关资源
    最近更新 更多