Android開(kāi)發(fā)之連續(xù)點(diǎn)擊返回鍵退出程序

簡(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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容