在我的应用程序中,我使用过C2DM。在这里,当我收到C2DM消息/通知时,我正在尝试使用通知管理器创建通知。我可以正确创建通知,但是当有许多未读通知时,我无法增加未读通知的数量(使用Notification.number)。因为我在onReceive()函数中创建了通知对象,所以一旦控件来自onReceive函数就会被破坏。所以,陈述
public class MyC2dmReceiver extends BroadcastReceiver{
private Context context;
@Override
public void onReceive(Context context1, Intent intent) {
this.context = context1;
if(intent.getAction().equals("com.google.android.c2dm.intent.REGISTRATION")) {
handleRegistration(context, intent);
}
else if (intent.getAction().equals("com.google.android.c2dm.intent.RECEIVE")) {
handleMessage(context, intent);
}
}
private void handleMessage(Context context, Intent intent)
{
.....
.....
Notification notification =
new Notification(R.drawable.ic_launcher,intent.getStringExtra("payload"),
System.currentTimeMillis());
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.defaults = Notification.DEFAULT_ALL;
notification.number += 1;
}
}
没有用,因为它每次都在创建一个新的通知对象。我也不能使它(通知对象)成为一个静态对象。如果我将它设为静态对象,即使在查看了所有未读通知之后,notification.number也不会被重置。这基本上就是问题所在。有人能帮助我吗?
答案 0 :(得分:0)
将未读消息的数量存储在数据库,平面文件,共享首选项或其他持久性存储中。在创建新Notification
时,请输入该号码。