Android 如何切换到正在通过已运行的活动运行的活动

Android 如何切换到正在通过已运行的活动运行的活动,android,android-activity,Android,Android Activity,我知道有很多关于这方面的讨论,但我不能让它正常工作 Activity(A)=singleTop,可以接收android.intent.action.SEND 活动(B)=单个任务 当我从Android Gallery中选择一张图片并用(a) (A)正在将意图重定向到(B) 这工作正常,如果我按HOME键并从午餐器中选择(A) (B)被带到前面。这就是我想要的,用户可以继续使用图片 现在,如果我按HOME并再次打开Android Gallery,则(A)为 onRestart(),OnStart(

我知道有很多关于这方面的讨论,但我不能让它正常工作

Activity
(A)=
singleTop
,可以接收
android.intent.action.SEND

活动
(B)=
单个任务

当我从Android Gallery中选择一张图片并用(a)
(A)正在将意图重定向到(B)

这工作正常,如果我按HOME键并从午餐器中选择(A) (B)被带到前面。这就是我想要的,用户可以继续使用图片

现在,如果我按HOME并再次打开Android Gallery,则(A)为
onRestart()
OnStart()
onResume()
。我明白了(A)

这就是我想切换到(B)的问题,因为用户需要完成他正在做的事情

我看不到一个好办法,为什么Android Gallery会恢复(a)?
也许我做错了什么,因为打开Android Gallery给我带来了(A)

任何帮助都将不胜感激

这是基于问题中有限信息的可能推理,假设A在其onCreate()中将意图重定向到B

1) 打开图库,选择图片,用a打开,将其重定向到B

Task1 has stack has Gallery, A, B (B on top of the stack)
2) 按home,从启动器中选择一个

Launcher app creates a new task, new task2's stack has a new instance of activity A, its onCreate() is invoked and intent is redirected to B. B being a singleTask is moved from Task1 to Task2 and its onNewIntent() would be invoked.
3) 按home,然后打开gallery

Task1 is resumed and the top of the stack is now A. Its onRestart(), onStart() and onResume() is invoked.
在这种情况下,您可以尝试从A的onStart()重定向意图,或者不将B作为单任务。

更新
我知道这是一个复杂的场景。我已经通过在(B)启动后简单地杀死(a)/finish()找到了一个有效的解决方案。现在,

如果我按HOME并再次打开Android Gallery,我将看到Android Gallery。
如果我按HOME并打开A,我会看到B。

如果我从B按后退键,我会看到图库

可以告诉你,除了技术术语,你想做什么。我得到confused@Harsha我不明白你在说什么我认为你完全正确,这是我对正在发生的事情的假设。现在,当我们知道问题是什么,并且得到了答案——“从A的onStart()重定向意图”。我该怎么做,有没有可靠的方法来确定B是否正在运行,因为如果B不运行,我不想启动它。如果你知道你能更新你的答案,那么当你提到“将意图重定向到B”时,我假设B总是启动的,并且它是在A的onCreate()中完成的,这就是为什么我建议将它移动到A的onStart()。如果假设不正确,请澄清并发布代码“重定向意图”,谢谢。我知道这是一个复杂的场景。我已经制定了一个有效的解决方案,在(B)启动后,现在简单地杀死(a)/finish(),如果我按HOME并再次打开Android Gallery,新的(a)将进入(B)堆栈。当你从B按back时,情况会怎样?它不会直接进入Gallery而不是a?