點擊手機物理鍵返回

android開發中雙擊手機物理鍵“back”,退出應用的方法有兩種:

一,重寫Activity中的方法:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    if(keyCode==KeyEvent.KEYCODE_BACK){
        //彈出確定退出對話框
        new AlertDialog.Builder(this) //這裏可以設置Dialog背景
        .setTitle("退出")
        .setMessage("確定退出嗎?")
        .setPositiveButton("確定", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                Intent exit = new Intent(Intent.ACTION_MAIN);
                exit.addCategory(Intent.CATEGORY_HOME);
                exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(exit);
                System.exit(0);
            }
        })
        .setNegativeButton("取消", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {

                dialog.cancel();
            }
        })
        .show();
        //這裏不需要執行父類的點擊事件,所以直接return
        return true;
    }
    //繼續執行父類的其他點擊事件
    return super.onKeyDown(keyCode, event);
}

二, 計算兩次點擊的時間差,判斷時間差來退出應用。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    if(keyCode == KeyEvent.KEYCODE_BACK){
        exitBy2Click();
        return false;
    }
}

private void exitBy2Click() {
    if ((System.currentTimeMillis() - exitTime) > mExitTime) {
        Toast.makeText(mContext, "再按一次退出程序", Toast.LENGTH_SHORT).show();
        exitTime = System.currentTimeMillis();
    } else {
        finish();
    }
}
發佈了31 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章