1. ホーム
  2. android

[解決済み] 通知クリック:アクティビティがすでに開いている

2022-04-20 15:23:24

質問

あるアプリケーションで、クリックすると特定のアクティビティが開かれる通知があります。私は、私が通知をクリックし、アクティビティがすでに開かれている場合、それは、次のようにしたいと思います。 ではない が再スタートし、前に出てくるだけです。

フラッグでできると思っていた FLAG_ACTIVITY_BROUGHT_TO_FRONT または FLAG_ACTIVITY_REORDER_TO_FRONT が、また開いてしまうので、2回アクティビティが発生しています。

これは私のコードです。

event_notification = new Notification(R.drawable.icon,
            mContext.getString(R.string.event_notif_message), System.currentTimeMillis()); 
Intent notificationIntent = new Intent(mContext, EventListActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
sendNotification(event_notification, notificationIntent, mContext.getString(R.string.event_notif_title),
                body, Utils.PA_NOTIFICATIONS_ID);

フラグで管理するか、SharedPreferencesに変数を格納して、開いているかどうかを確認した方が良いでしょうか?

ありがとうございます。

解決方法は?

を設定する必要があります。 launchMode 属性は Activity を開始しています。 singleTop . これにより、受信したIntentは新しいインスタンスを開始するのではなく、既存のインスタンスに配信されるようになり、その際に Activity がすでにタスクのスタックの最上位にある場合。

これは、マニフェストに android:launchMode="singleTop"<activity> 要素を使用します。 最新のIntentにアクセスするには(それと共に渡されたかもしれないデータに興味がある場合)、オーバーライドする onNewIntent() の中で Activity .