Подтвердить что ты не робот

Что такое использование SQLiteDatabase.CursorFactory в Android?

Я создал базу данных, расширив класс SQLiteOpenHelper. И его создание тоже. Это код, который я вставляю

public Imagehelper(Context context) {
    super(context, DATABASE_NAME, null, SCHEMA_VERSION);

    cntxt = context;
    filename = Environment.getExternalStorageDirectory();

    DATABASE_FILE_PATH_EXTERNAL = filename.getAbsolutePath()+File.separator+DATABASE_NAME;
    Log.i("Log", ":"+DATABASE_FILE_PATH_EXTERNAL);
}

Здесь все работает нормально.   Но если вы сосредоточитесь на параметрах, пройдите в super супер (контекст, DATABASE_NAME, null, SCHEMA_VERSION);. Я не могу понять нулевой параметр. Я знаю здесь, мы должны передать объект SQLiteDatabase.CursorFactory.

Но как??? И в чем польза от этого?

4b9b3361

Ответ 1

Причиной передачи нулевого значения является необходимость стандартного поведения SQLiteCursor. Если вы хотите реализовать specialized Cursor, вы можете получить его, расширив Cursor class (это для выполнения дополнительных операций с результатами запроса). И в этих случаях вы можете использовать класс CursorFactory для возврата экземпляра вашей реализации курсора. Вот документ для этого

SQLiteDatabase.CursorFactory DOC

Используется для разрешения возврата подклассов Курсора при вызове запроса.