猿问

如何监听联系人数据库中的更改

如何监听联系人数据库中的更改

我正在尝试监听联系人数据库中的任何更改。

所以我创建了我的contentObserver,它是一个子类ContentObserver

 private class MyContentObserver extends ContentObserver {

        public MyContentObserver() {
            super(null);
        }

        @Override
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);
            System.out.println (" Calling onChange" );
        }

    }MyContentObserver contentObserver = new MyContentObserver();context.getContentResolver().registerContentObserver (People.CONTENT_URI, true, contentObserver);

但是,当我使用' EditContactActivity'更改联系人数据库时,我的onChange()调用不会被调用。


繁华开满天机
浏览 318回答 2
2回答

富国沪深

我按原样部署了你的例子,它运行正常。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)您可能希望使用以下内容覆盖该观察者函数:@Overridepublic boolean deliverSelfNotifications() {     return true;     }确保People.CONTENT_URI引用了正确的值(android.provider.Contacts.People)。另外,我建议你使用Handler和ContentObserver,虽然这不是在这种情况下你的代码错误的原因。

白猪掌柜的

关于MannyNS答案的简单提示。在这里,People.CONTENT_URI已弃用。代码如下.-->ContactsContract.Contacts.CONTENT_URI    getApplicationContext().getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true, contentobserver);
随时随地看视频慕课网APP

相关分类

Android
我要回答