版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_38239454/article/details/79804513
实现内容:当点击一次 back 键时,程序提示“再按一次退出程序” ,当点击两次 back 键,两次之间的时间小于 3s 时,App就退出。
实则是对按键back监听。
重写onKeyDown(),监听back
声明两个常量:
/** 上次点击返回键的时间 */
private long lastBackPressed;
/** 两次点击的间隔时间 */
private static final int QUIT_INTERVAL = 3000;
/**
* 重写onKeyDown()
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
long backPressed = System.currentTimeMillis();
if (backPressed - lastBackPressed > QUIT_INTERVAL) {
lastBackPressed = backPressed;
Toast.makeText(this,"再按一次退出",Toast.LENGTH_LONG).show();
} else {
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
重写onBackPressed()
/**
* 重写onBackPressed()
*/
@Override
public void onBackPressed() {
long backPressed = System.currentTimeMillis();
super.onBackPressed();
if (backPressed - lastBackPressed > QUIT_INTERVAL) {
lastBackPressed = backPressed;
Toast.makeText(this,"再按一次退出",Toast.LENGTH_LONG).show();
} else {
finish();
System.exit(0);
}
}
以上直接写入MainActivity类即可。
实现效果: