我有3个屏幕(xmls):
所有这些导航都在创建新活动(视图)并使用意图进入下一个屏幕。
问题1:如果我继续创建新活动,只要用户转到屏幕1到屏幕2并完成游戏,屏幕3将有新游戏选项,这将创建屏幕2的新活动,在这种情况下,堆栈会更多,并且要离开游戏用户应按下更多数量的按钮(堆栈数字)。我想知道虽然游戏创建了多个活动,但在堆栈中只能保留3个屏幕(或者当用户点击后退按钮3次时,游戏应该出来)
问题2:当屏幕2顶部的模糊屏幕3应该转到主屏幕(屏幕1)时,用户点击后退按钮,按照当前阶段,当我点击后退按钮时,它将转到屏幕2(来自模糊的屏幕3,这对我没有意义)
由于
答案 0 :(得分:1)
您要做的是将这些活动的启动模式设置为清单中的单个顶部。在每个活动的清单集android:launchMode=singleTop
中,您只需要一个实例。有关详细信息,请结帐this。
答案 1 :(得分:1)
问题1:为清单中的每个活动代码撰写android:launchMode="singleTop"
。这样可以避免在历史堆栈中创建多个实例,只保留最新的条目。
问题2 在清单的Screen2活动标记中写入android:noHistory="true"
,以便历史堆栈中没有Screen2的条目,并且在屏幕3上按下将显示屏幕1。也看看Intent.FLAG_ACTIVITY_NO_HISTORY