2012-07-11 118 views
1

我的应用程序有一些问题, 我有4个按钮,一个用于开始其他每个活动。 说活动被称为a,b,c,d。我希望能够在这些活动之间进行切换,而无需在堆栈中获取100d个已暂停的活动,但仍可保存后台历史记录。同一活动的多个实例?

即A-> B-> A-> C-> D-> a其中全部是活动的同一实例

所以实际上我想要的是能够重新启动非常相同的实例的活动,而不是开始一个新的。

可能吗?

回答

6

是的,这是可能的。

mIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
mIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 

将此标志添加到您的意图中,这会将您的活动放在堆栈的顶部而不是创建新的标志。

+0

不幸的是后面的历史消失了,否则它有效,但不适合这个解决方案 – We4sZ 2012-07-11 07:13:04

+0

是的,这是正确的答案。 Not(Intent.FLAG_ACTIVITY_CLEAR_TOP)或(Intent.FLAG_ACTIVITY_SINGLE_TASK); – 2012-10-29 14:14:33

0

如果你的活动“a”是你的家,你可以添加这些标志:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 

然后,当你压回,应用程序将退出(因为你清除了所有其他活动)=>doc

+0

这不是我正在寻找的,想要能够开始任何次数的活动,并且仍然回到所有四个之间,其中没有一个是家 – We4sZ 2012-07-11 07:21:18

+0

然后我猜你什么时候必须保存你的实例状态和活动顺序在堆栈中,每当你想改变你的活动时,reorder_to_front。希望这会帮助你 – AMerle 2012-07-11 07:33:25