Что такое использование 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.
Но как??? И в чем польза от этого?
Ответы
Ответ 1
Причиной передачи нулевого значения является необходимость стандартного поведения SQLiteCursor
. Если вы хотите реализовать specialized Cursor
, вы можете получить его, расширив Cursor class
(это для выполнения дополнительных операций с результатами запроса). И в этих случаях вы можете использовать класс CursorFactory
для возврата экземпляра вашей реализации курсора. Вот документ для этого
SQLiteDatabase.CursorFactory DOC
Используется для разрешения возврата подклассов Курсора при вызове запроса.