当我点击通知栏时,它会跳过MainActivity.class
界面:
Intent notificationIntent = new Intent(context,MainActivity.class); //After click the notification, it will skip to the activity
PendingIntent contentIntent = PendingIntent.getActivity(context,0,notificationIntent,0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
如果MainActivity.class
本身已经打开,我再次单击通知栏,它会显示两个界面。谁知道如何解决这个问题?
答案 0 :(得分:1)
更改行:
Intent notificationIntent = new Intent(context,MainActivity.class);
为:
Intent notificationIntent =
new Intent(context,MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
从Android文档中可以看出:
FLAG_ACTIVITY_SINGLE_TOP 的
如果设置,则如果活动已在历史堆栈的顶部运行,则不会启动该活动。
或者,如果这不是预期的行为,请检查此标志:
FLAG_ACTIVITY_CLEAR_TOP 的
如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在开启) top)旧活动作为新的意图。
在尝试理解这些标志会导致什么时,您可能会对以下文档感兴趣: