java - Android Content Provider 数据库泄漏问题

标签 java android

我正在为这个应用程序编写一个内容提供程序,并且在我的内容提供程序中我打开一个数据库连接,运行一个查询并将结果光标返回给调用程序。如果我在提供程序中关闭此数据库连接,则游标没有结果。如果我让它保持打开状态,我的 DDMS 日志中会出现“发现泄漏”错误。我在这里想念什么?返回数据库结果游标的干净、正确的方法是什么?

最佳答案

你没有错过任何 AFAIK。 Android 缺少 ContentProvideronDestroy()(或等效项)。该区域的源代码中甚至没有任何内容表明 SDK 中没有出现某种 onDestroy()

如果您查看 AlarmProviderLauncherProvider 的源代码,它们甚至会基于每个 API 调用创建数据库对象(例如,每次获取 insert(),它们会打开一个永远不会关闭的可写数据库句柄)。

关于java - Android Content Provider 数据库泄漏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1379200/

相关文章:

java - 本地PC服务器和android模拟器之间的Socket连接

java - 学习 SCJP,以及如何从知识转向知识应用

java - 为什么 java.io.Serializable 在 Java 5 中没有被弃用?

java - 通过Java代码创建静态表

java - 显示伸展树(Splay Tree)的方法

android - 使用自定义接收器测试 chromecast 应用程序?

android - 从 surfaceView android 获取 JPG 文件

Android 唯一序列号

android - 从 Sqlite 数据库表中删除时出现故障(关系异常行为)

java - Android - 将数据保存到内部存储