0

ここに示されているパターンを使用しています:http ://www.youtube.com/watch?v = xHXn3Kg2IQE (ただし、わずかに変更されています。変更は、この質問にひどく関連するものではありません)。

状況は次のようになります。アクティビティはContentProviderにリソースを照会します。ContentProvider、現在ローカルDBにあるタプルをすぐに返し、RESTメソッドを開始し、サーバーからContentObserverに新しいデータを返すことができます。

しかし、これは私には少し奇妙に感じます。なぜなら、2つの場所でデータを処理する必要があるからです。1つはローカルDB用で、もう1つはRESTメソッドが完了したときです。もちろん、それを処理するためのメソッドを作成することもできますが、それでも役立ちますか?実際にコンテンツを変更せずにContentObserverを手動でトリガーできた場合、データの処理はContentObserver内の1か所でのみ発生します。これは可能ですか?

次に、アクティビティはContentProviderにクエリを実行し、ローカルデータベースのリソースを使用してContentObserverをトリガーします。Webサービスが照会され、RESTメソッドが完了すると、ContentObserverが再度トリガーされます(ローカルデータベースで既に利用可能なデータに加えて、Webサービスからのデータもあるため)。

可能であれば、ContentProviderから返されるカーソルが空/ヌルになる可能性があるため、ContentProviderへのクエリの開始は少し厄介になりますが、すべてを1か所で処理できる場合は受け入れられませんか?

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 に答える