【发布时间】:2014-01-22 22:21:51
【问题描述】:
您好,我想在我的手机中未读消息数和未接电话数发生变化时收到通知,目前我的代码如下所示:
private ContentObserver unreadSMSCO;
private ContentObserver missedCallCO;
@Override
protected void onResume() {
super.onResume();
missedCallCO = new ContentObserver(new Handler()){
public void onChange(boolean selfChange){
Cursor cursor = getContentResolver().query(Calls.CONTENT_URI, null,Calls.TYPE + " = ? AND " + Calls.NEW + " = ?",new String[] { Integer.toString(Calls.MISSED_TYPE), "1" },Calls.DATE + " DESC ");
int count = cursor.getCount();
grid.SetPhoneCallNotification(count);
cursor.close();
}
};
unreadSMSCO = new ContentObserver(new Handler()){
public void onChange(boolean selfChange){
Cursor cursor = getContentResolver().query(Uri.parse("content://sms/"), null, "read = 0", null, null);
int count = cursor.getCount();
grid.SetSMSNotification(count);
cursor.close();
}
};
getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, unreadSMSCO);
getContentResolver().registerContentObserver(Calls.CONTENT_URI, true, missedCallCO);
}
@Override
protected void onPause() {
super.onPause();
getContentResolver().unregisterContentObserver(unreadSMSCO);
getContentResolver().unregisterContentObserver(missedCallCO);
}
当我收到一条新短信时,这非常有效,但是当我单击通知或转到消息应用程序并阅读消息然后我返回此应用程序时,它不会触发内容接收器来通知我未读消息的数量发生了变化。未接来电也会出现同样的情况,当有人打电话给我而我没有接听时,我会收到通知,但是当我转到通话记录以便通知消失时,内容解析器不会被调用..
我在这里做错了什么,我需要添加一些东西才能正常工作吗?
谢谢!
【问题讨论】:
标签: android sms contentobserver