首页 > 解决方案 > 完成从推送通知开始的活动后如何将应用程序发送到后台

问题描述

如果应用程序收到推送通知,我有一个被调用的活动。活动以FLAG_ACTIVITY_NEW_TASK和开始FLAG_ACTIVITY_CLEAR_TOP。活动,我们称之为“A”,显示 UI 并在一段时间后完成。在这一点上,活动堆栈有问题。

设想:

  1. 该应用程序在后台与另一个活动“B”
  2. 然后应用收到推送通知并启动 Activity A。
  3. 相关事情完成后,app完成Activity A
  4. 然后返回到 Activity B 并保持在前台,即使应用程序在收到推送通知之前处于后台。

经过调试,我发现系统onResume在完成Activity A后调用了Activity B的方法。
如果应用程序从后台启动,如何让应用程序保持在后台?我应该更改活动 A 的意图标志吗?

标签: androidandroid-intentintentfilterback-stackactivity-stack

解决方案


在您的情况下,您可以通过两种方式实现这一目标

1-来自带有活动标签的清单文件android:noHistory="true"

2-当您盯着活动集标志时从代码如下

Intent mIntent = new Intent(context, Youractivity.class); 
mIntent.setFlags(mIntent.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(mIntent);

有关更多信息,请查看开发人员链接

您可以做的另一件事this.finish()是使用this.finishAffinity();. 这将关闭应用程序而不是进入前台。


推荐阅读