在不更改内容的情况下触发ContentObserver

时间:2012-02-24 12:53:29

标签: android web-services design-patterns android-contentprovider contentobserver

我正在使用此处提供的模式:http://www.youtube.com/watch?v=xHXn3Kg2IQE(虽然进行了轻微修改。修改不应与此问题非常相关)。

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

ContentResolver cr = getActivity().getContentResolver();

Uri uri = Uri for the content you are interested in 

cr.notifyChange(uri, null);