更新启动活动的意图

时间:2012-08-13 18:34:57

标签: android android-intent

我的目的是在alert dialog收到新邮件时启动显示GCM (Google Cloud Messenger)的活动。 “对话框”显示未读邮件的数量,但如果在显示一条新邮件之后收到新邮件而您尚未查看上一封邮件,则该对话框应更新未读计数以反映新邮件/未读邮件的数量。

然而,如果对话框的活动处于活动状态,意图不会更新对话框,那么我怎么能更新它,因为我不能在对话框上调用dismiss?

如果有新消息的意图

if((incMsgs + dlMsgs) > 0 && !mMsgType.equals("Reg")){
                edit.putBoolean(Preferences.NEW_ALERT, true).commit();
                priorityMsgs = true;
                Intent i = new Intent(this,NotificationDialog.class);
                i.putExtra("incidents", incMsgs);
                i.putExtra("dlMessages", dlMsgs);
                i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(i);
            }

2 个答案:

答案 0 :(得分:4)

您必须覆盖活动的OnNewIntent。并在此更新Ui元素。为此,您的活动launchMode需要是singleTop

答案 1 :(得分:0)

我已经通过在我的意图中添加这个来解决我的问题了:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

也许这对你也有帮助。