在收到的通知上重新启动应用程序

时间:2011-09-05 13:22:46

标签: android android-notifications

我开发了一个应用程序,它具有从服务器接收通知的功能。

问题是,当我点击收到的通知时,会打开我的应用程序本身的新实例

这种行为没问题,如果我的应用程序不在前台,但如果是,我尝试打开通知,则会创建我的应用程序的新实例,从而重叠先前打开的应用程序的实例。

我不希望这种情况发生,所以当我点击通知时,如果我的应用程序位于前台,我必须关闭它并打开一个新实例

我应该如何覆盖通知的点击事件?

4 个答案:

答案 0 :(得分:5)

你需要对IntentFlags做一些魔术。 尝试为你的意图添加不同的标志。

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP| Intent.FLAG_ACTIVITY_NEW_TASK);

答案 1 :(得分:1)

您可以在意图中添加标记,同时将意图设置为待处理意图,如下所示:

Intent notificationIntent = new Intent(context, activity.class);
            notificationIntent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
            PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

答案 2 :(得分:0)

如果您在意图中使用操作MAIN和类别LAUNCHER,它将恢复您现有的实例。它与从启动器或上次使用的应用程序启动应用程序相同。可能没有类别LAUNCHER。

答案 3 :(得分:-1)

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

通过这种方式,您将清除最后一个实例以及所有活动,并启动应用程序的新实例。