实现这个功能的原理就是比较两次按下返回键的时间间隔,如果大于设定的时间间隔(比如2秒),则提示再按一次返回键退出,否则直接退出程序,代码如下:
package com.example.test;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.widget.Toast;
public class MainActivity extends Activity {
//上次按下返回键的系统时间
private long lastBackTime = 0;
//当前按下返回键的系统时间
private long currentBackTime = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//捕获返回键按下的事件
if(keyCode == KeyEvent.KEYCODE_BACK){
//获取当前系统时间的毫秒数
currentBackTime = System.currentTimeMillis();
//比较上次按下返回键和当前按下返回键的时间差,如果大于2秒,则提示再按一次退出
if(currentBackTime - lastBackTime > 2 * 1000){
Toast.makeText(this, "再按一次返回键退出", Toast.LENGTH_SHORT).show();
lastBackTime = currentBackTime;
}else{ //如果两次按下的时间差小于2秒,则退出程序
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
}
程序运行截图如下: