重定向到有意向活动的问题
问题:可以说我有3个活动:MainMenu,LevelSelection和Game。我有一个按钮在MainMenu中运行一个意图,将玩家重定向到LevelSelection。在LevelSelection中是另一个将玩家重定向到游戏的按钮。当活动游戏结束时,它运行一个意图将玩家重定向到MainMenu活动。但是,在测试时,重定向将完成到LevelSelection而不是MainMenu。重定向到有意向活动的问题
的MainMenu => LevelSelection代码
this.finish();
Intent intent = new Intent(this, LevelSelection.class);
this.startActivity(intent);
LevelSelection =>游戏代码
this.finish();
Intent intent = new Intent(this, Game.class);
this.startActivity(intent);
游戏=> MeainMenu代码
this.finish();
Intent intent = new Intent(this, MainMenu.class);
this.startActivity(intent);
提前致谢。
在清单中,我将为您的所有活动设置No history
至true
。这将防止用户在当前关闭时(或者当用户按下“后退”时)回到先前的活动。这可能会有所帮助,因为您试图严格控制用户进行的活动。我也想删除this.finish()
。我认为你在意图开始之前关闭了活动。因此,为什么它会回到以前的活动,而不是新的活动。
另一种解决方案是仅为LevelSelection
将“无历史记录”设置为“真”。然后,您可以简单地关闭“游戏”活动,它应该返回到MainMenu
。
当启动电平选择,
FLAG_ACTIVITY_NO_HISTORY
的MainMenu => LevelSelection代码
this.finish();
Intent intent = new Intent(this, LevelSelection.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
this.startActivity(intent);
,如果你想要去的从游戏模式到主菜单回来,简单地使用,
游戏=> MeainMenu代码
this.finish();
这将特别解决这个问题。然而,这个应用程序比3个活动更复杂,我想知道为什么会发生这种行为。谢谢! – CapitanNerd
我认为当游戏活动完成时,LevelSelection活动恢复。尝试调用MainMenu活动而不完成游戏活动。 – dcanh121
它也没有工作。事实上,我在每次“重定向”之前运行“finish()”。例如,当我完成一个关卡时,我会调用“finish()”,然后调用一个知道是否必须返回主菜单(因为游戏结束)或下一关的方法。然而,我试图在调用intent后运行“finish()”,但结果是一样的。 – CapitanNerd
试试这个,而从游戏活动呼唤你的MainMenu活动:
Intent intent = new Intent(this, MainMenu.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
this.startActivity(intent);
希望这会有所帮助。
这将特别解决这个问题。然而,这个应用程序比3个活动更复杂,我想知道为什么会发生这种行为。谢谢! – CapitanNerd