通知栏的点击事件

时间:2013-02-21 09:42:35

标签: android notifications

当我点击通知栏时,它会跳过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本身已经打开,我再次单击通知栏,它会显示两个界面。谁知道如何解决这个问题?

1 个答案:

答案 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)旧活动作为新的意图。

在尝试理解这些标志会导致什么时,您可能会对以下文档感兴趣: