Android的简单应用——应用dispatchKeyEvent双击退出法度
2015-06-22 16:38
429 查看
Android体系按键操纵最先是在dispatchKeyEvent中进行处理惩罚的,然后才是onKeyDown(int keyCode, KeyEvent event)和onKeyUp(int keyCode, KeyEvent event)。同理,触摸操纵也是先在dispatchTouchEvent中进行处理惩罚,在分发给onTouchEvent进行处理惩罚。代码很简单,只要把握功德件的分发次序就ok了。Activity中的代码:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub Log.d("CPACM","onKeyDown"); return super.onKeyDown(keyCode, event); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { // TODO Auto-generated method stub Log.d("CPACM","onKeyUp"); return super.onKeyUp(keyCode, event); } @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub Log.d("CPACM","onTouchEvent"); return super.onTouchEvent(event); } @Override public boolean dispatchKeyEvent(KeyEvent event) { Log.d("CPACM","dispatchKeyEvent"); if(event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if(System.currentTimeMillis() - preTime < 2000){//在两秒内,退出 return super.dispatchKeyEvent(event); } Toast.makeText(this, "再按一次退出法度", Toast.LENGTH_SHORT).show(); //System.exit(0); preTime = System.currentTimeMillis(); return true; } // TODO Auto-generated method stub return super.dispatchKeyEvent(event); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { // TODO Auto-generated method stub Log.d("CPACM","dispatchTouchEvent"); return super.dispatchTouchEvent(ev); }
趁便附一张截图~
相关文章推荐
- 初识android可能遇到的问题
- Android平滑移动——Scroller类研究
- android 使用Scroller实现缓慢移动
- Android NDK开发之 Neon优化
- Android组件的通讯——Intent
- Android至ViewPager添加切换动画——使用属性动画
- android手势滑动——左右滑动效果实现
- android studio 设置代码编辑窗口背景颜色方法
- android 版本控制
- Android数据存储
- Android_15_pull解析Xml文件
- android activity切换动画
- android目录结构
- Android Screen Monitor
- java4Android(12)java中的异常(13)自定义异常,异常处理的两种方式
- android动画的Interpolator
- android 百度云推送
- 第四章:Android之本地数据库使用所要考虑的技术
- Android之ListView设置
- android学习笔记三 ---- android项目文件结构介绍