Demo 下载地址:http://download.youkuaiyun.com/detail/u011634756/5915467(免积分哦)
-----------------------华丽的分割线------------------------------
一、原理
1. 实现2个ContentObserver 分别用来监听数据库的变化
2. 数据库发生变化则 进行查询数据
3. 把查询的数据表现出来
二、实现
1. 实现2个ContentObserver 分别用来监听数据库的变化
private class SmsMmsContentObserver extends ContentObserver {
public SmsMmsContentObserver() {
super(new Handler());
}
@Override
public void onChange(boolean selfChange) {
Log.i(TAG, "SmsMmsContentObserver , onChange");
// 大数据操作 在线程中 进行
mHandler.post(new Runnable() {
@Override
public void run() {
UpdateUnreadMmsSms(getApplicationContext());
mHandler.sendEmptyMessage(0);
}
});
super.onChange(selfChange);
}
}
private class ContactsContentObserver extends ContentObserver {
public ContactsContentObserver() {
super(new Handler());
}
@Override
public void onChange(boolean selfChange) {
Log.i(TAG, "ContactsContentObserver , onChange");
// 大数据操作 在线程中 进行
mHandler.post(new Runnable() {
@Override
public void run() {
UpdateUnAnsweredCalls(getApplicationContext());
mHandler.sendEmptyMessage(0);
}
});
super.onChange(selfChange);
}
}
2. 数据库发生变化则 进行查询数据
/**
* 获取 未读短信数量
*
* @param context
* @return
*/
public static void UpdateUnreadMmsSms(Context context) {
Cursor cur = null;
try {
cur = context.getContentResolver().query(
Uri.parse("content://l-message_summary"),
null, "known = 0 and read = 0", null, null);
if (null != cur) {
SMS_NUM = cur.getCount();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (cur != null) {
cur.close();
}
}
}
/**
* 获取 未接电话
*
* @param context
* @return
*/
public static void UpdateUnAnsweredCalls(Context context) {
Cursor cur = null;
try {
cur = context.getContentResolver().query(Calls.CONTENT_URI, null,
"type = 3 and new = 1", null, null);
if (null != cur) {
PHONE_NUM = cur.getCount();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (cur != null) {
cur.close();
}
}
}
3. 把查询的数据表现出来
private void updateUI(){
tvSms.setText("短信:" + SMS_NUM);
tvPhone.setText("未接: " + PHONE_NUM);
}
---------------------------------------
简单demo 上一个简单的截图
====================关注小鱼===================
新浪微博:http://weibo.com/AwareMissing
腾讯微博:http://t.qq.com/y_haiyang