如何在Android中区分屏幕锁定和主页按钮按下?

时间:2015-02-21 14:57:02

标签: android

我想在屏幕熄灭并保持锁定时保持当前活动状态(但是,在第一种情况下,用户不应按下主页按钮)。当屏幕打开时,我想向用户呈现相同的活动。如果用户按下主页按钮,我想开始另一个活动。

更新:当用户按下主页按钮时,我想在用户通过单击其图标重新启动活动时启动另一个活动

3 个答案:

答案 0 :(得分:0)

不是启动器的应用程序无法捕获主页按钮。对于屏幕关闭和按下主页按钮,应用程序生命周期将是相同的,因此无法检测按下主页按钮。

您的问题并不十分清楚,但如果您想要显示不同的屏幕或“重置”#34;按住home后用户返回到应用程序的屏幕,然后你应该设置noHistory标志。

这可确保您的活动在用户离开时完成,这正是按下主页按钮时的情况。

我不推荐使用此标志只是为了在用户按下主页时再次显示欢迎屏幕,但稍后会回来。原因是按回家并不意味着用户已经完成了#34;随着应用程序,只是由于某种原因出现了一些东西并从您的应用程序切换出来。在这种情况下,默认的Android行为是返回到用户在启动器中再次按下应用程序图标时离开的位置。

相比之下,退出应用程序'在Android中意味着应用程序的所有任务都已完成,例如按后退键例如。在这种情况下,下次启动应用程序时无法返回任何内容,欢迎活动会再次显示。

我建议您阅读Activity lifecycle以及tasks and backstacks在Android中的工作方式。

答案 1 :(得分:0)

您可以使用this来检测按下电源按钮。然后相应地使用修改onResume()来区分应用程序最小化的两种可能性。

编辑:我似乎误读了您的用例和理解。但对于更高级的用户和特定用例,您可能会问的是什么

答案 2 :(得分:0)

感谢您的回答。我使用onUserLeaveHint方法检测到主页按钮按下事件。功能如下:

@Override
    protected void onUserLeaveHint() {
        //code to exit.
    }

干杯