【发布时间】:2019-12-03 03:37:42
【问题描述】:
我有两个不同的应用程序,分别称为 App A 和 App B。
- App A : ActivityA 与启动模式 -> “singleTask”
- App B : ActivityB 启动模式 -> “singleInstance”
步骤:
- 打开将打开 ActivityA、ActivityStack 的 App A:ActivityA
- 使用 startActivityForResult() 启动 App B,ActivityStack : ActivityA > ActivityB
- 通过 Intent 从 Activity B 打开 ActivityA,ActivityStack:ActivityA > ActivityB > ActivityA
正如你所看到的活动堆栈,它创建一个新的活动A实例,而不是通过调用onNewIntent()方法返回到同一个活动A实例。
我不确定,这是因为 Activity 为结果而启动的吗?请帮助在这种情况下提供适当的解决方案。谢谢。
【问题讨论】:
-
我认为活动从来没有任何实例。它由 android 生命周期管理。
-
尝试在您的 ActivityB 意图“flag_activity_reorder_to_front”中添加此意图过滤器
-
我已经回答了你的问题。但是你想做什么?我确信有更简单的方法可以做到这一点。
-
@David Wasser:当我通过 Intent 从 Activity B 发送 Open ActivityA 时,我希望通过 onNewIntent() 调用相同的 ActivityA 实例(启动 ActivityB),而不是创建新实例。你能帮我解决这个问题吗?
-
您可以使用
startActivityForResult()进行 A 呼叫 B。如果您使用特殊的启动模式(singleInstance 或 singleTask),这将不起作用。为什么要使用特殊的启动模式?
标签: android android-intent android-activity