簡(jiǎn)介
在很多程序中,都有這樣一個(gè)功能,就是在主界面,連續(xù)點(diǎn)擊返回鍵會(huì)退出程序。它一般是這樣顯示的:第一次按下提示你 再按一次退出程序 ,如果此時(shí)立馬點(diǎn)擊返回鍵會(huì)直接退出整個(gè)App;如果超過(guò)了預(yù)設(shè)的間隔時(shí)間再按,又會(huì)提示再按一次退出程序,下面實(shí)現(xiàn)一下,完全可以抽離出來(lái)作為一個(gè)工具方法來(lái)調(diào)用。
Activity代碼
public class MainActivity extends AppCompatActivity {
// 彈出提示框
private Toast toast;
// 記錄第一次按下的時(shí)間
private long firstPressTime = -1;
// 記錄第二次按下的時(shí)間
private long lastPressTime;
// 兩次按下的時(shí)間間隔
private final long INTERVAL = 2000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toast = Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT);
}
/**
* 按下返回鍵的時(shí)候調(diào)用
*/
public void onBackPressed() {
showQuitTips();
}
/**
* 顯示提示框
*/
private void showQuitTips() {
// 如果是第一次按下 直接提示
if (firstPressTime == -1) {
firstPressTime = System.currentTimeMillis();
toast.show();
}
// 如果是第二次按下,需要判斷與上一次按下的時(shí)間間隔,這里設(shè)置2秒
else {
lastPressTime = System.currentTimeMillis();
if (lastPressTime - firstPressTime <= INTERVAL) {
System.exit(0);
} else {
firstPressTime = lastPressTime;
toast.show();
}
}
}
}
運(yùn)行測(cè)試
- 連續(xù)點(diǎn)擊

doubleclicktoquit01.gif
- 不連續(xù)點(diǎn)擊

doubleclicktoquit02.gif