仅使用显示GCM通知的默认方式(而不是使用onMessageReceived()和GcmListenerService),是否可以保持活动堆栈保持不变,并在触摸通知时将应用程序置于前台?我想获得与触摸应用程序图标时相同的行为。目前,每次触摸通知时都会启动一项新活动。
修改
这是详细情况。我已阅读该文档,但我仍然无法获得所需的行为。假设我的堆栈看起来像这样:
onCancelled()
活动B目前位于顶部并且处于活动状态。当用户再次按下圆形按钮然后再按下应用程序图标时,相同的堆栈将被激活(恢复)。
现在在这种情况下触摸通知时我得到了这个:
Activity B
Activity A
但我想保留这个:
Activity A
Activity B
Activity A
我已经尝试了所有launchMode变种但没有成功。
答案 0 :(得分:1)
它更多地与您的活动设置方式有关。例如,您可以在清单中将活动设为singleTop
活动:
<activity
...
android:launchMode="singleTop"
...
/>
这样,当此活动有新Intent
时,Android操作系统不会创建您的活动的新实例,而是启动现有实例并通过新Intent
onNewIntent(Intent)
函数(为了使其有效,您应该在活动中覆盖该方法)。
有更多方法可以执行此操作,请查看documentation(&#34;使用清单文件&#34;部分),了解哪种方式最适合您的方案。