Android的ContentProvider Uri更改了通知方案

时间:2015-07-26 17:03:02

标签: android uri android-contentprovider android-cursor

假设我有这个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>/phonespeople/<peopleId>/phones/<id>people/<peopleId>/phones/special也会收到更改通知!

我做了一些测试,但它没有...... 我不知道该怎么办...... 非常感谢。

1 个答案:

答案 0 :(得分:0)

由于您没有peopleId,您唯一可以做的就是people上的通知。事实上,Android的ContactsProvider做了类似的事情 - 无论发生什么变化,每次更改都会通知content://com.android.contacts