我已经部署了你的示例,因为它是,它的工作正常。
package com.test.contentobserver;
import android.app.Activity;
import android.database.ContentObserver;
import android.os.Bundle;
import android.provider.Contacts.People;
public class TestContentObserver extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.getApplicationContext().getContentResolver().registerContentObserver (People.CONTENT_URI, true, contentObserver);
}
private class MyContentObserver extends ContentObserver {
public MyContentObserver() {
super(null);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
}
}
MyContentObserver contentObserver = new MyContentObserver();
}
所以,你必须做别的错。
您是否通过观察者注册的光标进行更改?
使用Observer函数deliverSelfNotifications()检查。 (默认情况下返回false)
你可能想要覆盖那个观察者函数,如:
@Override
public boolean deliverSelfNotifications() {
return true;
}
确保People.CONTENT_URI指向正确的值(android.provider.Contacts.People)。
另外,我建议你使用处理程序与ContentObserver,虽然这不是什么让你的代码错误在这种情况下。