我想将我新创建的活动设置为堆栈中唯一的活动并且也在它上面,所以当从A创建活动B时,我可以按回来从B返回主菜单
因此,这就是我所做的
public void onClick(View v) {
Intent i = new Intent(this,B.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);
}
出于某种原因,在活动B开始后,按下后仍然会将我带到A。
我在这里缺少什么?
答案 0 :(得分:3)
喜欢这个
public void onClick(View v) {
Intent i = new Intent(this,B.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);
finish(); // to end the current activity
}
在startactivity(...)之后调用 finish(),以便A activity ll removed from the stack
。当您按下后退按钮 A 活动时,不会在堆栈中。
答案 1 :(得分:1)
在活动A中调用startActivity(i)之后,必须调用finish(); - 完成活动。然后按回来不会带你到A!
答案 2 :(得分:1)
更改清单中的活动:
<activity
android:name=".ActivityA"
android:noHistory="true"
>
</activity>
答案 3 :(得分:0)
这对我有用,我也是这样用的:
Intent myIntent = new Intent(this, b.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivityForResult(myIntent, 0);