[联系人]监听联系人数据库刷新数据

来源:互联网 发布:北京秦淮数据有限公司 编辑:程序博客网 时间:2024/06/05 18:53
import android.provider.CallLog;

import android.provider.ContactsContract.Contacts;

public void onCreate(Bundle state) {
        super.onCreate(state);
        if (mCustomObserver == null) {
            /*创建Observer*/
            mCustomObserver = new CustomContentObserver();
        }

        /*注册监听*/
        getActivity().getContentResolver().registerContentObserver(
                CallLog.CONTENT_URI, true, mCustomObserver);
        getActivity().getContentResolver().registerContentObserver(
                Contacts.CONTENT_URI, true, mCustomObserver);

}

private CustomContentObserver mCustomObserver;
    private final Handler mHandler = new Handler();
    private final Runnable mStartLoadingRunnable = new Runnable() {
        @Override
        public void run() {
            /*加载数据*/
            loadDialpadEntries(true);
        }
    };
    private class CustomContentObserver extends ContentObserver {
        public CustomContentObserver() {
            super(new Handler());
        }
        @Override
        public void onChange(boolean selfChange) {
            /*收到回调开启消息刷新数据*/
            mHandler.removeCallbacks(mStartLoadingRunnable); // Remove one in the queue, if any.
            mHandler.postDelayed(mStartLoadingRunnable,50);
        }

    }

   @Override
    public void onDestroyView() {
        if (mCustomObserver != null) {
            /*释放observer*/
            getActivity().getContentResolver().unregisterContentObserver(mCustomObserver);
            mCustomObserver = null;
        }
        super.onDestroyView();
    }
0 0
原创粉丝点击