我有一个带有通知的应用程序,如果我单击它们,通知会打开某些活动。我想要的是,如果我单击通知并且活动已经打开,则不会再次开始,而只是放在最前面。我以为我可以用标志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中存储一个变量以检查它是否已打开?谢谢!
3 回答
![?](http://img1.sycdn.imooc.com/545864490001b5bd02200220-100-100.jpg)
米脂
TA贡献1836条经验 获得超3个赞
您需要设置launchMode
的属性Activity
你开始singleTop
。这将导致将传入的Intent传递到现有实例,而不是在一个Activity
已经位于任务堆栈顶部的新实例启动。
这是通过添加android:launchMode="singleTop"
到<activity>
元素在清单中完成的。要访问最新的意向(如果你有兴趣可以与它已通过任何数据),覆盖onNewIntent()
在你的Activity
。
- 3 回答
- 0 关注
- 356 浏览
添加回答
举报
0/150
提交
取消