Я не могу закрыть Курсор, созданный в инициализаторе Дао - PullRequest
0 голосов
/ 22 октября 2018

Я не эксперт в базах данных 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

Я попытался создать курсор перед ним, и получил ошибку " this должна быть первой строкой в ​​конструкторе".

Я также пыталсяизменив его на OrderDAO в коде и получил ошибку «ожидался вызов метода».Я чувствую, что упускаю что-то простое.

Что мне нужно сделать, так это каким-то образом перетащить этот обработчик запросов (пользовательскую функцию, возвращающую курсор) в свою собственную переменную, чтобы я мог закрыть ее после заполнения dao в перегруженном конструкторе под ним.Конструктор, который принимает идентификатор, вызывается примерно из 100 разных мест.

Любая помощь будет принята с благодарностью.Спасибо за ваше время.

...