1

私は関連するQ&Aを読んだことがありますが、カスタムContentProviderが次のようなことを行うとは信じられません。

insertUri = ContentUris.withAppendedId( Data2TableMetaData.CONTENT_URI, rowId)
// notify listeners
getContext().getContentResolver().notifyChange(insertUri, null);

... ContentObserversには、rowIdを取得する方法がありません。

これは本当に正しいですか?これは良くないように見えるので、私は何かが欠けているに違いないと思います。

4

2 に答える 2

1

あなたが正しいです。コールバックインターフェイスには、何が変更されたかに関する情報は含まれず、変更が発生したことのみが含まれます。しかし、一般的に開発者は、あなたのためにすべての面倒な作業を行うCursorLoadersのようなものを使用することをお勧めします。http://developer.android.com/reference/android/content/CursorLoader.html

ただし、新しいAndroid 16 APIを使用すると、OnChangeメソッドで行のURIを取得できます。

于 2012-03-23T12:43:19.017 に答える
0

APIレベル16では、ContentObserverはrowIdを持つURIを受け取ります。ただし、その前に、行を挿入しているが、そのrowIdのみをリッスンしたい場合は、rowIdがわかったら、挿入直後にContentResolver.registerContentObserverを呼び出すことができます。

于 2013-04-06T14:56:14.707 に答える