我們在使用軟件的時候,經常會遇見這種情況:點擊返回鍵,提示“再按返回鍵退出”。這是為了防止用戶的誤操作,不小心按到返回鍵而直接退出應用了,影響到剛才在應用里的操作。連續兩次誤按返回鍵的幾率會小很多,所以用連按兩次返回鍵來確認用戶確實要退出程序。
在MainActivity(連續按兩次Back鍵要退出的Activity)里,重寫onKeyDown()或者onBackPressed(),兩種方法。
第一種方法:
private long exitTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
if ((System.currentTimeMillis() - exitTime) > 2000) {
toast("再按一次退出程序");
exitTime = System.currentTimeMillis();
} else {
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
第二種方法:
private boolean quit = false; //設置退出標識
@Override
public void onBackPressed() {
if (!quit) { //詢問退出程序
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
new Timer(true).schedule(new TimerTask() { //啟動定時任務
@Override
public void run() {
quit = false; //重置退出標識
}
}, 2000); //2秒后運行run()方法
quit = true;
} else { //確認退出程序
super.onBackPressed();
finish();
}
}