1

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

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

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

但阅读所有记录可能不是一个好的解决方案。

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

4

1 回答 1

0

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

从您感兴趣的方法发送广播将是获取数据库更改通知的一种选择。

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

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

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

于 2013-01-18T15:16:28.080 回答