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();
}
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();
}