现在很多的应用程序都有这个小功能,其实这个功能要实现也是非常简单的。
我们只需要捕捉到用户按下返回键的操作,然后判断就可以了。
首先,定义一个变量,用于计算用户两次按下返回键的时间差:
long exitTime=0;// 退出时间
然后就是一个捕捉用户按下返回键的事件:(注释很详细,不作其它解释)
/** 捕捉按下返回键操作 */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO 按两次返回键退出应用程序
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// 判断间隔时间 大于2秒就退出应用
if ((System.currentTimeMillis() - exitTime) > 2000) {
// 应用名
String applicationName = getResources().getString(
R.string.app_name);
String msg = "再按一次返回键退出" + applicationName;
//String msg1 = "再按一次返回键回到桌面";
Toast.makeText(MainActivity.this, msg, 0).show();
// 计算两次返回键按下的时间差
exitTime = System.currentTimeMillis();
} else {
// 关闭应用程序
finish();
// 返回桌面操作
// Intent home = new Intent(Intent.ACTION_MAIN);
// home.addCategory(Intent.CATEGORY_HOME);
// startActivity(home);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
是的,后面注释的部分提到了 返回主界面,其实有很多应用程序并不想用户直接退出,而且用户也并非想退出应用程序,又时候用户只是想快速的回到主界面,让该应用继续在后台运行。所以,我们也可以让用户点击之后返回到主界面。
当然了,主要还是看你的需求!