android - 具有 singleTop 启动模式的 startActivityForResult 在 Android 9 上无法正常工作
问题描述
我有一个通过喷气背包导航解决的活动和片段。
我的一项活动已launchMode
设置为singleTop
AndroidManifest.xml 文件。
当我startActivity
在我的片段中使用方法时,如果在调用者任务的堆栈顶部已经有一个具有相同类型的 Activity 实例,则它按预期工作,没有任何新的 Activity 创建。
但是如果使用startActivityForResult
新的 Activity 实例,即使它已经在后栈的顶部,它也会继续创建。
我在最新的 Android 9 版本上遇到的这个问题。我在旧版本的 Android (4.1) 上测试了我的代码,并且singleTop
启动模式按预期工作。
如果我使用以下代码以编程方式设置启动模式,那么有趣的是:
val intent = Intent(context, T::class.java)
intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP
singleTop
启动模式可以startActivityForResult
在 Android 9 上正常工作,没有任何问题。
那么为什么它在 AndroidManifest.xml 中不起作用?我错过了什么?
解决方案
推荐阅读
- python-3.x - 谁能告诉我匹配二十 (20) 天和 28 天但不匹配 27 天的正则表达式
- html - applying CSS for particular td tag in a column
- typescript - Serverless Graphql Lambda 很难理解这个错误
- python-3.x - 在 Zoho Books 中自动创建销售订单
- google-cloud-platform - 是否可以将组织添加到现有 GCP 帐户?
- javascript - Firebase 实时数据库无法识别身份验证状态
- numpy - 如何连接具有不同尺寸(形状)的ndrarray?
- mongodb - org.bson.json.JsonParseException:JSON 阅读器期待一个值,但发现 ':' - Springboot 中的 Mongo 查询抛出此错误
- axios - 无法使用 Nuxt Auth 和 Axios 读取未定义的属性“授权”
- javascript - 无法将此 js 代码添加到我的材料设计芯片的样式中