假设我有这个UriMatcher(在这里找到:http://developer.android.com/reference/android/content/UriMatcher.html):
sURIMatcher.addURI("contacts", "people", PEOPLE);
sURIMatcher.addURI("contacts", "people/#", PEOPLE_ID);
sURIMatcher.addURI("contacts", "people/#/phones", PEOPLE_PHONES);
sURIMatcher.addURI("contacts", "people/#/phones/#", PEOPLE_PHONES_ID);
sURIMatcher.addURI("contacts", "people/#/phones/special", SPECIAL);
sURIMatcher.addURI("contacts", "phones", PHONES);
sURIMatcher.addURI("contacts", "phones/#", PHONES_ID);
我有通常的ContentProvider:
@Override
public Cursor query(Uri uri...){
cursor.setNotificationUri(getContext().getContentResolver(), uri);
}
@Override
public int update(Uri uri...){
getContext().getContentResolver().notifyChange(uri, null);
}
问题是,当我使用此Uri更新内容时:phones/<id>
,我希望这些Uri:people/<peopleId>/phones
,people/<peopleId>/phones/<id>
和people/<peopleId>/phones/special
也会收到更改通知!
我做了一些测试,但它没有...... 我不知道该怎么办...... 非常感谢。
答案 0 :(得分:0)
由于您没有peopleId,您唯一可以做的就是people
上的通知。事实上,Android的ContactsProvider做了类似的事情 - 无论发生什么变化,每次更改都会通知content://com.android.contacts
。