0

我使用这里介绍的模式:http ://www.youtube.com/watch?v=xHXn3Kg2IQE (虽然非常轻微的修改。修改不应该与这个问题非常相关)。

情况是这样的:活动向 ContentProvider 查询资源。ContentProvider可以立即返回当前在本地数据库中的元组,启动 REST 方法,并将新数据从服务器返回到 ContentObserver。

但这对我来说有点奇怪,因为你必须在两个地方处理数据——一次用于本地数据库,一次用于 REST 方法完成时。当然,您可以创建一个处理它的方法,这会有所帮助,但仍然如此吗?如果我可以手动触发 ContentObserver,而无需实际更改内容,则处理数据只会发生在一个地方 - 在 ContentObserver 中。这可能吗?

然后该活动将查询 ContentProvider,这将使用本地数据库中的资源触发 ContentObserver。将查询 web 服务,一旦 REST 方法完成,ContentObserver 将再次被触发(因为我们现在除了本地数据库中已有的数据外,还拥有来自 web 服务的数据)。

如果可能的话,启动对 ContentProvider 的查询会变得有点尴尬,因为从 ContentProvider 返回的游标可能是空/null,但如果它允许我在一个地方处理所有内容,这不是可以接受的吗?

4

1 回答 1

2

我不完全清楚你想要什么,但这里有一个猜测......

ContentResolver cr = getActivity().getContentResolver();

Uri uri = Uri for the content you are interested in 

cr.notifyChange(uri, null);
于 2012-02-25T13:33:23.870 回答