TabActivity子类中处理返回键事件
16lz
2021-01-26
最近使用TabActivity,按下返回键却发现onKeyDown方法根本没有被调用,Google之,有人说需要在每个子Activity中实现相应的监听,无奈过于麻烦。
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK) {
- exit();
- return true;
- }
- return super.onKeyDown(keyCode, event);
- }
具体的原因没有去深究,最后找到了解决的方法,参考:http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html
在dispatchKeyEvent中处理Key事件,注意没有处理的键最后要调用super.dispatchKeyEvent(event);以免其他键得不到系统处理,代码如下:
- @Override
- public boolean dispatchKeyEvent(KeyEvent event) {
- if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
- if (event.getAction() == KeyEvent.ACTION_DOWN
- && event.getRepeatCount() == 0) {
- exit();
- return true;
- }
- }
- return super.dispatchKeyEvent(event);
- }
更多相关文章
- Android(安卓)App 退出整个应用
- Android动态加载View的几种方法
- Android(安卓)CountDownTimer倒计时器的使用
- android 平滑切换屏幕的几种方法总结
- android showSoftInput方法调用软键盘不显示
- Android(安卓)webView与JavaScript的交互
- android-market-api
- 走进Java Android(安卓)的线程世界(三)Hander消息机制
- android 应用程序4种编译方法