首先这篇文章是我发布的第一篇文章,文采或者知识面涵盖不是很好,很广,望各位海涵,
有不足之处也希望大家指出,笔者在这儿谢过了,话不多说,进入我们的主题:
第一种通过调用onkeyDown方法,此方法兼容Android 1.0到Android 2.1 也是常规方法。
之前我们估计用的比较多的回退键监听都是调用onKeyDown方法,通过判断keyCode值对应是否为回退键
举个栗子吧

//该方法可设置两次返回退出,并在此弹出对话框或者吐司一个消息给用户
//定义一个long型值用于记录第一次点击的时间
private Long firstBackTime=(long)0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {//表示点击返回键
//System.currentTimeMillis()获取当前时间
if (System.currentTimeMillis() - firstBackTime > 2000) {
Toast.makeText(MainActivity.this, "再次点击退出程序", Toast.LENGTH_SHORT).show();
firstBackTime = System.currentTimeMillis();
//表示如果两次点击间隔时间超过两秒则退出无效
return false;
} else {
finish();
System.exit(keyCode);
}
}
return super.onKeyDown(keyCode, event);
}
第二种就是对于Android 2.0开始又多出了一种新的方法,对于Activity 可以单独获取Back键的按下事件,直接重写onBackPressed方法
具体按下回退键两次退出当前程序具体例子如下:
//定义一个long型值用于记录第一次点击的时间
private Long firstBackTime=(long)0;
@Override
public void onBackPressed() {
if(System.currentTimeMillis()-firstBackTime>2000){
Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
firstBackTime=System.currentTimeMillis();
}else{
super.onBackPressed();
//停止进程
//其中System.exit(0)代表进程正常退出 System.exit(1)代表程序异常退出
System.exit(0);
}
}