【发布时间】:2012-03-07 17:50:57
【问题描述】:
当使用 LoaderManager 时,我是否仍然像过去那样管理我的数据库写入并让 Loader 接收更改?我正在为应用程序转换和添加功能,但我仍在习惯 Android 平台。
【问题讨论】:
标签: android android-loadermanager
当使用 LoaderManager 时,我是否仍然像过去那样管理我的数据库写入并让 Loader 接收更改?我正在为应用程序转换和添加功能,但我仍在习惯 Android 平台。
【问题讨论】:
标签: android android-loadermanager
如果您使用CursorLoader,并且您通过与CursorLoader 一起使用的ContentProvider 进行所有数据库更新,加载程序及其Cursor 将收到更改通知,因此一切都会为您处理.
如果您不使用CursorLoader,您有责任以某种方式更新您自己的Cursor。例如,我的LoaderEx 项目有一个SQLiteCursorLoader,它直接与SQLiteOpenHelper 一起工作,它在Loader 上提供insert()、update()、delete() 和execSql() 方法,因此我们可以更新相应的光标。
【讨论】:
SQLiteCursorLoader 并覆盖buildCursor 或添加一个新功能以使用db.getReadableDatabase().query?所以我可以利用我拥有的代码,或者简单地获取从我已经构建的 DBAdapter 帮助类返回的游标。
query(),所以我用rawQuery()来抓挠我的痒。但是您可以增加SQLiteCursorLoader 以拥有额外的数据成员和不同的构造函数,buildCursor() 检查数据成员并酌情执行query() 或rawQuery()。欢迎使用补丁。 :-)