14

我是一名新手 android 程序员,我最近关注了一个教程,该教程展示了如何创建本地 SQLite 数据库,然后使用 SQLiteDatabase.rawQuery 访问数据库以返回光标。我想修改我的应用程序以使用 CursorLoader 这显然是访问数据库的更好方法。我的问题是 CursorLoader 构造函数需要一个 URI。我只输入“file:///[db 路径]”吗?好像有点乱

4

2 回答 2

8

游标加载器接受 URI 的原因是它希望查询 contentProvider 而不是原始数据库。

所以我建议你创建一个在内部使用你的数据库的内容提供者,这样你就可以直接使用 CursorLoader 类。

使用内容提供者的优势在于它可以更好地封装您的数据,并且您可以轻松地直接利用来自 android 的大量 api。

以下是有关如何创建内容提供者的一些指南

http://developer.android.com/guide/topics/providers/content-provider-creating.html

http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/

如果您选择不创建 ContentProvider,您可以直接扩展AsyncTaskLoader或游标加载器以按照您想要的方式查询数据。

于 2012-09-18T21:49:39.687 回答
3

看看 CommonsWare 的LoaderEx库。它允许您将 aLoader与本地一起使用SQLiteDatabase,因此您不必费心创建自己的ContentProvider.

于 2012-09-18T21:52:59.160 回答