通知点击:活动已打开

我有一个带有通知的应用程序,如果我单击它们,通知会打开某些活动。我想要的是,如果我单击通知并且活动已经打开,则不会再次开始,而只是放在最前面。


我以为我可以用标志FLAG_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中存储一个变量以检查它是否已打开?


谢谢!


茅侃侃
浏览 357回答 3
3回答

米脂

您需要设置launchMode的属性Activity你开始singleTop。这将导致将传入的Intent传递到现有实例,而不是在一个Activity已经位于任务堆栈顶部的新实例启动。这是通过添加android:launchMode="singleTop"到<activity>元素在清单中完成的。要访问最新的意向(如果你有兴趣可以与它已通过任何数据),覆盖onNewIntent()在你的Activity。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android