Приложение не закрывало курсор или здесь был открыт объект БД - PullRequest
0 голосов
/ 06 октября 2018

Я использую базу данных SQLite в моем приложении для Android.Когда я выполняю операцию поиска, то случайно обнаруживаю эту ошибку «Приложение не закрывало курсор». Что-то не так с этим кодом?Вот код

    field.addTextChangedListener(new TextWatcher() {
                @Override
                public void afterTextChanged(Editable arg0) {

                }

                @Override
                public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {

                }

                @Override
                public void onTextChanged(CharSequence s, int arg1, int arg2, int arg3) {
                    String test = s.toString().trim();
                    if (test.isEmpty()) {
                        if (myCursor != null)
                            myCursor.close();

                        myCursor = getReceipts1Data(orderTypes);
                    myAdapter = new CustomCursorAdapter(activity, myCursor, CursorAdapter.NO_SELECTION);
                    lView.setAdapter(myAdapter);

                    }
                }
            });


 public Cursor getReceipts1Data(Global.OrderType[] orderTypes) 

    {
        String subquery1 = "SELECT ord_id as _id,ord_total,ord_issync,cust_id,isVoid,ord_type" +
                " FROM Orders WHERE ord_type IN (";
        String subquery2 = ") AND isOnHold = '0' ORDER BY rowid DESC";
        Cursor cursor = DBManager.getDatabase().rawQuery(subquery1 + getOrderTypesAsSQLArray(orderTypes) + subquery2, null);
        cursor.moveToFirst();
        return cursor;
    }

1 Ответ

0 голосов
/ 06 октября 2018

Я вижу строку, где вы закрываете курсор, если он равен нулю, но я не вижу ту, где вы закрываете его, если он не равен нулю.Чтобы быть более конкретным, вы пытались добавить

myCursor.close();

после строки:

lView.setAdapter(myAdapter);

в методе onTextChanged

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...