我使用支持库中的标准android ContentProvider和CursorLoader。 我正在寻找最佳方法来获取有关数据库中已发生变化的信息。
我知道我可以在函数中读取和比较光标:
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
}
但阅读所有记录可能不是一个好方法。
你知道这个问题的好方法吗?
答案 0 :(得分:0)
如果使用内容提供程序,则通过实现CRUD方法来插入,更新,删除或检索数据库中的项目,从而抽象出对基础数据库所做的所有更改。
从您感兴趣的方法发送广播将是获得对数据库所做更改的通知的选项。
我记得我曾使用此方法计算刷新周期期间添加到数据库的项目数。
您可以选择发送已更改项目的Uri作为额外意图,以获取对已更改的数据库中的行的引用。
此外,您可以声明一个全局变量来启用或禁用这些广播,以便仅在我们感兴趣的情况下触发。