所以,我知道可以通过执行以下操作来终止当前活动并启动新活动:
//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();
提前感谢您的任何见解! : - )
答案 0 :(得分:5)
为什么我相信您正在寻找Intent
标志FLAG_ACTIVITY_CLEAR_TOP
。
这将清除目标活动类的最后一个实例(或者从未调用过新活动的所有活动)的所有活动的后堆栈。
答案 1 :(得分:0)
我不确定这对你是否有帮助(它没有具体解决你的问题),但通常人们都想这样做,因为他们有循环代码,导致同一个活动被多次启动和过度。您可以将活动指定为(基本上)单身,这样无论您启动它多少次,它始终都会启动相同的活动...只需在您的清单中为该活动添加android:launchMode= "singleTask"
即可。
如果这对您的事业没有帮助,我会事先道歉:)