CursorLoader,获取本地数据库的URI

我是一个新手Android程序员,我最近跟着一个教程,该教程展示了如何创建一个本地SQLite数据库,然后使用SQLiteDatabase.rawQuery来返回一个Cursor来访问数据库。 我想修改我的应用程序以使用CursorLoader,这显然是访问数据库的更好方法。 我的问题是CursorLoader构造函数需要给出一个URI。 我只输入“file:/// [db to path]”? 似乎有点凌乱。

游标加载器接受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或游标加载器以按您希望的方式查询数据。

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