Android ContentObserver onChange从未调用
因此,当我更改联系人时,我试图在文本视图中显示我的所有联系人,我希望我的应用程序重新加载包括新联系人在内的联系人。由于某些原因,Android ContentObserver onChange从未调用,android,android-contentprovider,Android,Android Contentprovider,因此,当我更改联系人时,我试图在文本视图中显示我的所有联系人,我希望我的应用程序重新加载包括新联系人在内的联系人。由于某些原因,onChange()从未被调用,即使在我创建了新联系人之后 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
onChange()
从未被调用,即使在我创建了新联系人之后
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
outputText = (TextView) findViewById(R.id.textView1);
outputText.setMaxLines(Integer.MAX_VALUE);
outputText.setMovementMethod(new ScrollingMovementMethod());
this.getApplicationContext().getContentResolver().registerContentObserver (ContactsContract.Contacts.CONTENT_URI, true, contentObserver);
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
if(settings.getBoolean("first", true)){
fetchContacts();
} else {
outputText.setText(settings.getString("contacts", "no contacts detected"));
}
}
public void fetchContacts(){
// gathers all the contacts
}
public void onPause(){
super.onPause();
avePreference();
}
public void savePreference(){
//code for setting shared preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("contacts",outputText.getText()+"");
editor.putBoolean("first", false);
editor.commit();
}
private class ContactObserver extends ContentObserver {
public ContactObserver() {
super(null);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
fetchContacts();
}
@Override
public boolean deliverSelfNotifications() {
Log.e("","~~~~~~ Change");
return true;
}
}