首页 > 解决方案 > 我无法关闭在 dao 初始化程序中创建的光标

问题描述

我不是 android 数据库方面的专家,但我能过得去。尽管在弄清楚如何在我们的应用程序中解决此问题时,我遇到了知识障碍。我们遇到了涉及游标的错误,我将其追踪到此函数,该函数是数据库访问对象中的构造函数。

  public OrderDAO(int id) {
    // DCWEB-1520: CursorWindowAllocationException due to unclosed cursors... One source below...
    this(DB.getInstance().QueryCursor("SELECT * FROM " + TAG_VIEW_NAME + " WHERE ID=?", id, true));

}

public OrderDAO(Cursor cursor) {
    super(cursor);
    if (cursor.getCount() > 0) {
        // ACRALYZER: Prevent DAOHelper.getIn

我尝试在它前面创建一个光标,并得到一个“必须是构造函数中的第一行”错误。

我还尝试在代码中将其更改为 OrderDAO 并收到“方法调用预期”错误。我觉得我错过了一些简单的东西。

我需要做的是以某种方式将该查询游标(一个返回游标的自定义函数)拉到它自己的变量中,这样我就可以在它下面的重载构造函数中填充 dao 后关闭它。接受 id 的构造函数从大约 100 个不同的地方调用。

任何帮助,将不胜感激。感谢您的时间。

标签: androidandroid-sqlite

解决方案


推荐阅读