【问题标题】:CursorLoader - obtain information about what has changed in dbCursorLoader - 获取有关 db 中已更改内容的信息
【发布时间】:2013-01-18 14:59:35
【问题描述】:

我使用支持库中的标准 android ContentProvider 和 CursorLoader。 我正在寻找最佳方法来获取有关数据库更改的信息。

我知道我可以在函数中读取和比较光标:

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
}

但读取所有记录可能不是很好的解决方案。

你知道解决这个问题的好方法吗?

【问题讨论】:

    标签: android android-contentprovider loader android-cursorloader


    【解决方案1】:

    如果您使用内容提供程序,您可以通过实现 CRUD 方法来抽象出对底层数据库所做的所有更改,以插入、更新、删除或检索数据库中的项目。

    从您感兴趣的方法发送广播将是一个选项,以获取对数据库所做更改的通知。

    我记得我曾使用这种方法来计算刷新周期中添加到数据库的项目数。

    您可以选择发送已更改项目的 Uri 作为额外意图,以获取对数据库中已更改行的引用。

    此外,您可以声明一个全局变量来启用或禁用这些广播,以便仅在我们感兴趣的情况下触发。

    【讨论】:

    • 谢谢 Supreethks,我过于关注 CursorLoader 而忘记了 ContentProvider 什么都知道 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 2019-01-30
    • 2021-10-25
    相关资源
    最近更新 更多