【发布时间】:2015-07-27 01:43:47
【问题描述】:
假设我有这个 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 也能收到更改通知!
我做了一些测试,但它没有...... 我不知道该怎么办... 非常感谢。
【问题讨论】:
-
所以你知道一个ID,对吧?然后基于该 ID 构造您想要的
Uris 并与它们一起调用notifyChange -
是的,我知道电话 ID,但不知道人员 ID...
-
我完全不明白,那么你想通知什么类型的
people/<peopleId>/phonesuri?所有people/*?还是全部people/*/phones? -
是的,都是
people/#/phones,当我编辑手机时!
标签: android uri android-contentprovider android-cursor