这是结构的样子:
活动1/2/3 - >活动4 - >活动5
在Act4上,如果布尔变量为真,则直接跳转到Act5。 我的问题是,当我按下Act5时,我想回到名为Act4的活动。但是,它会跳回到Act5。如果我在背压上使用意图,我不知道哪个活动叫做Act4。
在Act4的onCreate中,我有这个代码:
if (boolean) {
Intent intent = new Intent(context, Act5.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
可以在startActivity之前先调用finish吗?
提前致谢。
答案 0 :(得分:0)
在调用意图从act4调用finish()方法启动act5之前。
答案 1 :(得分:0)
boolean your_variable = true;
if(your_variable)
{
startActivity(new Intent(Act4.this, Act5.class));
finish();//now this finish() method will finish Act4 so when you press back on Act5 it will return back to Act3
}
答案 2 :(得分:0)
我的建议是使用startActivityForResult()
代替startActivity(intent)
,当您从activity5结束时,您可以设置一些标记并在到达onActivityResult()
时进行管理
如果您想根据旗帜完成活动4,请在finish()
onActivityResult()
答案 3 :(得分:0)
你可以把你的Act4类的onCreate方法放在
if (yourBooleanValue) {
finish();
startActivity(yourIntent);
}
或者,如果你在第3个活动中拥有那个布尔值会更好。
答案 4 :(得分:0)
您可以通过putExtra通过活动1/2/3传递一些值进行管理,而根据活动5,您可以根据这些值返回活动。