小编典典

通知点击:活动已开启

all

我有一个带有通知的应用程序,如果我单击它们会打开某个活动。我想要那个,如果我点击通知并且活动已经打开,它 不会 再次启动,而只是被带到前面。

我以为我可以用
flagFLAG_ACTIVITY_BROUGHT_TO_FRONT或来做到这一点FLAG_ACTIVITY_REORDER_TO_FRONT,但它会再次打开它,所以我有两次活动。

这是我的代码:

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 中存储一个变量来检查它是否打开?

谢谢!


阅读 111

收藏
2022-08-07

共1个答案

小编典典

你需要设置你开始的launchMode属性。这将导致传入的 Intent
被传递到现有实例,而不是在该实例已经位于任务堆栈的顶部时启动一个新实例。Activity``singleTop``Activity

这是通过添加android:launchMode="singleTop"<activity>元素在清单中完成的。要访问最新的
Intent(如果您对可能随它传入的任何数据感兴趣),请覆盖onNewIntent()您的Activity.

2022-08-07