2011-04-18 70 views
0

如何确定Home键是否被按下?如果按下,我想做一些处理并完成活动,因为我不希望它在下次启动时恢复。我无法在onStop中处理它,因为从活动开始我开始另一个活动(因此即使在这种情况下onStop也会被调用)。Android:如何确定主键被按下

+0

据我所知(现在):你不能确定。和问题可能会重复http://stackoverflow.com/questions/1998278/android-capture-suppress-home-and-endcall-buttons-events – OcuS 2011-04-18 22:33:25

+0

不,它不是重复的那个问题...任何人请回答这个,。 – 2011-04-18 22:37:15

+0

可能的重复[如何检测用户在我的活动中按HOME键?](http://stackoverflow.com/questions/2208912/how-can-i-detect-user-pressing-home-key-in-my - 活动) – cHao 2011-09-20 17:25:36

回答

3

如何确定Home键是否被按下?

你不知道。

如果按下了,我想做一些处理并完成活动,因为我不希望它在下次启动时恢复。我无法在onStop中处理它,因为从活动开始我开始另一个活动(即使在这种情况下onStop也会被调用)。

有许多方式,用户可以将您的活动之一,包括:

  1. 由你开始另一个活动
  2. 通过用户按下HOME
  3. 通过用户按下BACK
  4. 由用户接到电话或某些其他活动从不知所闻(例如闹钟)
  5. 通过用户响应旋转设备,把它在一个底座或以其他方式触发配置变化

一般来说通知

  • 通过用户,你根本不知道发生了哪些那些。 isFinishing()将覆盖#3,并且有几种方法可以识别#6,但从系统的角度来看,其他方面难以区分。

    如果您希望将场景#1视为特殊场景 - 做一些不同的事情,因为用户正在转向其中一项活动而不是其他事情 - 那么这取决于您的实施情况。

  • +0

    那么,如果我在活动中启动另一项活动,我可以设置一些标志吗?如果设置了标志,如果没有设置,则不做任何事情,然后在onStop - 执行处理并完成应用程序(假设由于HOME键而结束)?此外,我检查了消息传递应用程序中的行为...如果用户在撰写masc和home键的过程中按下了他们保存到草稿,那么应用程序如何知道在这种情况下.. plz澄清.. – 2011-04-18 22:54:48

    +0

    @Android_enthusiast:理想情况下,你重新设计您的应用程序,以便您不关心用户如何离开您的活动。在Messenger应用程序方面,欢迎您在http://source.android.com上浏览它的源代码。 – CommonsWare 2011-04-18 23:07:06