2012-07-31 77 views
0

如何检测什么事件导致活动完成/ onstop called.In在后退按钮的情况下,按下回车键,用户从通知栏导航。如何当活动是检测到这三种情况称为停止(ICS)检测哪个事件结束活动

回答

1
之间的区别

您可以重写View的onKeyDown方法,并在其中捕获返回和主页按钮。你应该记得返回super.onKeyDown(keyCode,event);在某处标记了什么按键之后。这样,默认操作将继续。

重要的是它的工作是在你的视图上调用requestFocus()。在其他情况下,它不会收到任何按键,也不会调用任何回调。

你应该能够知道回来被按下,家里被按下或其他活动。这是当没有家或回来被发现和Activity.onStop()被调用。我希望你正在寻找这个。

+0

它不工作... onKeyDown不听回密钥和主键 – Meher 2012-08-21 09:00:50

+0

我相信SurfaceView能够接收KeyEvent.KEYCODE_BACK并传递给你的应用程序。也许它只会在focusOnTouch模式下工作。我相信它的工作原理对于我来说,也许对于ICS 4.0来说,它的行为可能会有所不同,当然,我们将应用程序视为单一视图,并且所有界面都通过自定义库被绘制到表面,这种方式对您来说可能是不可接受的。 view.setFocusableInTouchMode(true); view.requestFocusFromTouch(); – Pihhan 2012-08-22 12:24:19

+0

是的,我正在研究iCS,没有运气 – Meher 2012-08-24 05:33:41

1

如果用户离开后退键,则将调用onDestroy()方法。

但我不知道是否有可能使过去的2例(Home键和通知)

+0

听起来不错的答案,但我特别需要其他两种情况...! :( – Meher 2012-08-21 09:01:59