真的需要一些建议。我有一个Activity在我的游戏中运行,当用户按下Back按钮时,它将使用onBackPressed()方法退回到主菜单,但是我也会覆盖onUserLeaveHint()以执行相同的操作按下按钮或接到电话。但是,当按下“返回”按钮时也会调用此方法,这意味着主菜单意图被调用两次,其中一个在另一个上面。
如果有人知道如何解决这个问题或更好地处理这两个事件,那将非常感激。
感谢。
答案 0 :(得分:10)
onUserLeaveHint()
是一个受保护的方法,作为活动的其他生命周期方法,如果您正在处理onUserLeaveHint,这将处理以下情况
基本上它提示用户试图离开您的活动。这意味着如果您正在处理onUserLeaveHint()
,则无需在代码中处理onBackPressed()
。
答案 1 :(得分:2)
只是一个可以帮助你的想法,我将它用于我的“自制”ActionBar,以确定用户何时实际到达主要(和最后)活动,然后退出。我手动启动Main-Activity并通过设置FLAG_ACTIVITY_CLEAR_TOP
标志清除整个活动堆栈,因此如果用户现在再次点击后退按钮,则应用程序将关闭。
Intent intent = new Intent(getContext(), MainMenu.class).
setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);