更新启动活动的意图

3
我有一个意图,启动一个活动,在从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个回答

4

您需要覆盖活动的OnNewIntent方法,并在其中更新Ui元素。为使其正常工作,您的活动启动模式需要为singleTop。


1

我通过在我的意图中添加以下内容解决了我的问题:

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

也许这对你也有帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接