总的来说,实则是使用onKeyDown方法进行监听按钮点击事件,并作出相应处理,一共有两种方式实现该功能。
第一种是使用消息传递机制,使用Handle()传递消息的间隔时间内若进行了再次点击返回键则退出程序
代码如下:
1 private static boolean isExit = false; 2 3 Handler mHandler = new Handler(){ 4 5 @Override 6 public void handleMessage(Message msg) { 7 // TODO Auto-generated method stub 8 super.handleMessage(msg); 9 isExit = false;10 }11 };12 13 @Override14 public boolean onKeyDown(int keyCode, KeyEvent event){ 15 if (keyCode == KeyEvent.KEYCODE_BACK ) { 16 exit(); 17 return false; 18 } 19 return super.onKeyDown(keyCode, event); 20 21 }22 23 24 private void exit() {25 // TODO Auto-generated method stub26 if(!isExit){27 isExit = true;28 Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();29 mHandler.sendEmptyMessageDelayed(0, 2000);30 }31 else{32 finish();33 System.exit(0);34 }35 }
第二种方式是计算点击按钮的时间差
1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 if (keyCode == KeyEvent.KEYCODE_BACK) { 4 exit(); 5 return false; 6 } 7 return super.onKeyDown(keyCode, event); 8 } 9 10 public void exit() {11 if ((System.currentTimeMillis() - exitTime) > 2000) {12 Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();13 exitTime = System.currentTimeMillis();14 } 15 else {16 finish();17 System.exit(0);18 }19 }
原标题:点击两次返回键退出程序
关键词: