2012-01-25 58 views
2

我有一个支持多任务处理(在后台运行)的应用程序,但我已经运行到了Android堆栈中的问题。Android的活动回栈和多任务处理的支持

这是我有:

活动一种结果启动活动B,所以......

活动A - >活动B

如果在B点的用户长按活动在按钮,切换到另一个应用程序(例如说浏览器),然后再长按下按钮,还是回到我的应用程序,他们将在活动B,但此时后面栈看起来像这样:

活动A - > Internet浏览器 - >活动B

所以,当我做finish()从我的活动B不回来我的活动A,而是在互联网浏览器发回的结果...

这也是这种情况,如果用户不使用键长按,而且还采用了按钮来回到自己的发射器,然后使用长按按钮回到我的应用程序。在这种情况下返回堆叠更是雪上加霜:

首页发射器 - >活动B

所以,当我在活动B做finish(),用户回来到他们的主屏幕和他们永远无法回到活动除了如果他们从应用程序抽屉中再次启动应用程序。

有什么办法来实现在这种情况下多任务的工作?无论用户在这两者之间打开什么,活动B都需要始终将结果返回给活动A.

+0

显示您使用明星代码t活动B.听起来你可能会错误地设置一些标志。 – kabuko

+0

问题可能是我没有设置任何标志,但我不知道有什么要设置的标记,也许你可以点我是正确的。这里是我的代码: '意图I =新意图(ActivityA.this,ActivityB.class); \t i.setAction(“android.intent.action.PICK”); startActivityForResult(i,0);' – Gix

回答

1

好的。经过长时间的研究和尝试各种各样的事情,这里是解决问题的办法。希望这有助于其他人......

的解决方案是非常简单的,简单的,在AndroidManifest.xml

设置android:launchMode="singleTask"发生的活性

设置android:noHistory="true"的活动B

这样活动B从堆栈中删除,如果我们去一个像浏览器或退出到主屏幕另一个应用程序,所以当我们回到我们的应用程序,我们回到活动A.