我正在使用此处提供的模式:http://www.youtube.com/watch?v=xHXn3Kg2IQE(虽然进行了轻微修改。修改不应与此问题非常相关)。
情况是这样的: 活动向ContentProvider查询资源。 ContentProvider 可以立即返回当前在本地数据库中的元组,启动REST方法,并将新数据从服务器返回到ContentObserver。
但这对我来说有点奇怪,因为那时你必须在两个地方处理数据 - 一次是本地数据库,一次是REST方法完成。当然,你可以创建一个处理它的方法,这有帮助,但仍然? 如果我可以手动触发ContentObserver,而不实际更改内容,则只能在ContentObserver中的一个位置处理数据。这可能吗?
然后,活动将查询ContentProvider,它将使用本地数据库中的资源触发ContentObserver。将查询Web服务,一旦REST方法完成,ContentObserver将再次被触发(因为我们现在还拥有来自Web服务的数据以及本地数据库中已有的数据)。
如果可能的话,启动对ContentProvider的查询会变得有点尴尬,因为从ContentProvider返回的游标可能是空的/ null,但如果它允许我在一个地方处理所有内容,那么这是不可接受的?
答案 0 :(得分:2)
我不完全清楚你想要什么,但这是一个猜测......
ContentResolver cr = getActivity().getContentResolver();
Uri uri = Uri for the content you are interested in
cr.notifyChange(uri, null);