Android - 在启动新活动时杀死多个以前的活动

时间:2011-04-22 00:41:45

标签: java android android-activity android-intent

所以,我知道可以通过执行以下操作来终止当前活动并启动新活动:

//Presumably called from class A
Intent i = new Intent(A.this, B.class);
startActivity(i);
A.this.finish();

我意识到那里有一些过于冗长的代码,我只想彻底。因此,如果我们假设从某个活动A调用了这个,那么我们知道A将完成并且B将开始,当您按下B中的后退按钮时,您将被带到活动A之前运行的活动。 / p>

我的问题是,这可以进一步提升一级吗?例如,我将如何实现以下目标?

//From class A
Intent i = new Intent(A.this, B.class);
startActivity(i);


//from class B
Intent i = new Intent(B.this, C.class);
startActivity(i);
A.this.finish(); //something equivalent
B.this.finish();

提前感谢您的任何见解! : - )

2 个答案:

答案 0 :(得分:5)

为什么我相信您正在寻找Intent标志FLAG_ACTIVITY_CLEAR_TOP

这将清除目标活动类的最后一个实例(或者从未调用过新活动的所有活动)的所有活动的后堆栈。

答案 1 :(得分:0)

我不确定这对你是否有帮助(它没有具体解决你的问题),但通常人们都想这样做,因为他们有循环代码,导致同一个活动被多次启动和过度。您可以将活动指定为(基本上)单身,这样无论您启动它多少次,它始终都会启动相同的活动...只需在您的清单中为该活动添加android:launchMode= "singleTask"即可。 如果这对您的事业没有帮助,我会事先道歉:)