天天看點

[聯系人]監聽聯系人資料庫重新整理資料

import android.provider.CallLog;

import android.provider.ContactsContract.Contacts;

public void onCreate(Bundle state) {

        super.onCreate(state);

        if (mCustomObserver == null) {

            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) {

            getActivity().getContentResolver().unregisterContentObserver(mCustomObserver);

            mCustomObserver = null;

        }

        super.onDestroyView();

    }