0

次のコードがあります。

    Intent i = new Intent(this, MessagesActivity.class);
    PendingIntent pi = PendingIntent.getActivity(this, 100, i, PendingIntent.FLAG_CANCEL_CURRENT);
    NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

    NotificationCompat.Builder nb = new NotificationCompat.Builder(this);
    nb.setContentText("There is a new message for you").setContentTitle("New message").setContentIntent(pi);
    nb.setWhen(System.currentTimeMillis()).setDefaults(Notification.DEFAULT_ALL);
    nb.setTicker("SomeText").setSmallIcon(android.R.drawable.ic_dialog_alert);
    manager.notify(100, nb.getNotification());

ユーザーがこのコードで作成された通知をクリックすると、アプリは MessagesActivity アクティビティを開く必要があります。できます。ただし、ユーザーが既に MessagesActivity にいる場合、このコードは MessagesActivity の新しいコピーを実行します。どうすれば修正できますか?前もって感謝します。

4

2 に答える 2

1

マニフェスト ファイルのアクティビティでこれを試すことができますか?

launchMode="singleTop"アクティビティのプロパティとして追加します。

Android デベロッパー

于 2013-07-23T13:21:47.650 に答える
1

使用してみてください:

インテントの FLAG_ACTIVITY_NO_HISTORY フラグ。

Intent i = new Intent(this, MessagesActivity.class).setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

履歴スタックでは活動しません。したがって、複数のインスタンスは存在しません。

于 2013-07-23T13:17:14.363 に答える