单击通知时保留活动堆栈

时间:2016-05-12 15:29:49

标签: android android-activity android-notifications

仅使用显示GCM通知的默认方式(而不是使用onMessageReceived()和GcmListenerService),是否可以保持活动堆栈保持不变,并在触摸通知时将应用程序置于前台?我想获得与触摸应用程序图标时相同的行为。目前,每次触摸通知时都会启动一项新活动。

修改

这是详细情况。我已阅读该文档,但我仍然无法获得所需的行为。假设我的堆栈看起来像这样:

onCancelled()

活动B目前位于顶部并且处于活动状态。当用户再次按下圆形按钮然后再按下应用程序图标时,相同的堆栈将被激活(恢复)。

现在在这种情况下触摸通知时我得到了这个:

Activity B
Activity A

但我想保留这个:

Activity A
Activity B
Activity A

我已经尝试了所有launchMode变种但没有成功。

1 个答案:

答案 0 :(得分:1)

它更多地与您的活动设置方式有关。例如,您可以在清单中将活动设为singleTop活动:

<activity
...
    android:launchMode="singleTop"
...
 />

这样,当此活动有新Intent时,Android操作系统不会创建您的活动的新实例,而是启动现有实例并通过新Intent onNewIntent(Intent)函数(为了使其有效,您应该在活动中覆盖该方法)。

有更多方法可以执行此操作,请查看documentation(&#34;使用清单文件&#34;部分),了解哪种方式最适合您的方案。