在Android中,SQLiteDatabase.CursorFactory有什么用途?

41

我通过扩展 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中传递的参数 super(context, DATABASE_NAME, null, SCHEMA_VERSION); 。我无法理解null参数。我知道这里我们需要传递SQLiteDatabase.CursorFactory对象。

但是如何传递?以及它的用途是什么?

1个回答

57
传递 null 的原因是为了使用标准的 SQLiteCursor 行为。如果您想要实现一个专用的 Cursor,可以通过扩展 Cursor 类来获取它(这是为了在查询结果上执行其他操作)。在这些情况下,您可以使用 CursorFactory 类来返回您的 Cursor 实现的实例。以下是该文档: SQLiteDatabase.CursorFactory DOC 用于在调用查询时允许返回 Cursor 的子类。

18
你有没有一个例子可以说明为什么你会想这样做? - Roel
1
有任何例子吗? - IMXQD
1
请问您能否提供任何我们可能想要这样做的示例?还可以给一小段代码片段吗? - Nikita
有没有示例? - Akif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接