を読んでいるものを信じることができません。ContentObserver - ちょうど私が読み、関連するQ & Aを読んで、私のカスタムのContentProviderは、このようなことをしなければと考えていないことができている私は
insertUri = ContentUris.withAppendedId(Data2TableMetaData.CONTENT_URI, rowId)
// notify listeners
getContext().getContentResolver().notifyChange(insertUri, null);
... ContentObserversを行いますrowIdを取得する方法がありません。
これは本当に正しいですか?私は何かが欠けているに違いないと思う。これはちょっといいとは思わないから。
ありがとうございました。 CursorLoaderが私の質問にどのように対処しているのかわかりません(私もAndroid 3.0以前です)。私はまだ何かが欠けているに違いないと思う! throwされた場合、notifyChange URIにrowIdを追加する目的は何ですか?コンテンツプロバイダにとって私が見たコーディングパターンを理解したいだけです。 – Alex
もしあなたがCursorLoaderを使うなら、行IDなどを心配する必要はありません。また、互換性パッケージを使用して、CursorLoaders pre Honeycombを使用することもできます。今すぐ元の質問に戻ってください:実際にあなたのURIに行idを追加する必要はありません。しかし、そうすることで、単一の要素だけを聞くコンテンツオブザーバを持つことが可能になります。そのような観察者は、あらかじめ明らかに聞いているIDを知る必要があります。 – Renard
OK - しかし、ここでは私をぶつけている単純な状況です。私は、ユーザーが新しいオブジェクトを作成するいくつかのUIを持っています(新しい行に直接マップします)。私はまだ行IDを持っていません。コンテンツプロバイダーを介して新しい行を挿入します。私はuri(minus rowid)の更新を聞くUIアクティビティにコンテンツオブザーバを持っています。だから、私のUIが挿入のために送信した新しい行について聞きたがっているにもかかわらず、ベースuriに関連するすべての行へのすべての*更新は私のオブザーバーを起動させるようです。 UIが独自の挿入を聞くことができない場合、UIとdbの間のこのハンドシェイクがどのように機能すべきかはわかりません。 – Alex