android - 完成从推送通知开始的活动后如何将应用程序发送到后台
问题描述
如果应用程序收到推送通知,我有一个被调用的活动。活动以FLAG_ACTIVITY_NEW_TASK
和开始FLAG_ACTIVITY_CLEAR_TOP
。活动,我们称之为“A”,显示 UI 并在一段时间后完成。在这一点上,活动堆栈有问题。
设想:
- 该应用程序在后台与另一个活动“B”
- 然后应用收到推送通知并启动 Activity A。
- 相关事情完成后,app完成Activity A
- 然后返回到 Activity B 并保持在前台,即使应用程序在收到推送通知之前处于后台。
经过调试,我发现系统onResume
在完成Activity A后调用了Activity B的方法。
如果应用程序从后台启动,如何让应用程序保持在后台?我应该更改活动 A 的意图标志吗?
解决方案
在您的情况下,您可以通过两种方式实现这一目标
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();
. 这将关闭应用程序而不是进入前台。
推荐阅读
- javascript - 异步调用后材质 UI 模态不刷新
- r - 在 R 中随时间(3 分钟间隔)绘制推文
- r - 将嵌套的 Json 导入 R
- c - Printf 用于 c 中的浮点数
- python - 如何将 Hy 代码包含到单独的文件中,然后使用 Hy 导入?
- python-3.x - 日语 dakuten 的 Unicode 映射
- c - How to fetch values from one function and transfer it to another?
- java - 同步数据库中的表 - H2 -Springboot - Maven - Flyway - Java
- javascript - 如何使用 html、css 和 javascript 创建 Accordion。这样一次打开一个,当打开第一个页面时,默认情况下应该打开一个
- javascript - 如何使用来自 GraphQL 的数据在 Javascript 中创建对象?