3

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);
            }
4

2 に答える 2

4

アクティビティのOnNewIntentをオーバーライドする必要があります。そして、このアップデートでは、Ui要素が更新されます。これを機能させるには、アクティビティのlaunchModeがsingleTopである必要があります

于 2012-08-13T18:42:29.600 に答える
1

私の意図にこれを追加することで問題を解決しました:

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

多分これもあなたを助けることができます。

于 2016-02-20T00:06:15.697 に答える