1.打印调用堆栈信息:
从onKeyDown中:
try{
throw new RuntimeException("dingran onkeydown");
}catch(Exception e){
e.printStackTrace();
}
打印出的log:
W/System.err( 794): java.lang.RuntimeException: dingran onkeydown
W/System.err( 794): at novel.supertv.dvb.activity.PlayActivity.onKeyDown(PlayActivity.java:725)
W/System.err( 794): at android.view.KeyEvent.dispatch(KeyEvent.java:2580)
W/System.err( 794): at android.app.Activity.dispatchKeyEvent(Activity.java:2329)
W/System.err( 794): at novel.supertv.dvb.activity.PlayActivity.dispatchKeyEvent(PlayActivity.java:704)
W/System.err( 794): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1807)
W/System.err( 794): at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3327)
W/System.err( 794): at android.view.ViewRootImpl.handleFinishedEvent(ViewRootImpl.java:3300)
W/System.err( 794): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2460)
W/System.err( 794): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 794): at android.os.Looper.loop(Looper.java:137)
W/System.err( 794): at android.app.ActivityThread.main(ActivityThread.java:4424)
W/System.err( 794): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 794): at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err( 794): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
W/System.err( 794): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
W/System.err( 794): at dalvik.system.NativeStart.main(Native Method)
从log上分析:一个按键事件的顺序是: