Android 點選兩次退出app
阿新 • • 發佈:2018-12-27
Android 中使用者要退出應用程式,看到大部分退出應用程式的做法是:彈出一個對話方塊,使用者點了確定後退出。個人覺得這使用者體驗有點不好,手指還要往螢幕中間移動再點 擊。使用者按了一次後退鍵,這可能使用者是誤按了後退鍵,並不想直接退出程式,給使用者提示”再按一次後退鍵退出應用程式“,如果使用者真想退出,直接再按一次後退鍵即可退出整個應用程式。
網上有好多實現方法,看到大部分人部落格轉的方法如下:
private static Boolean isExit = false; Timer tExit = new Timer(); MyTimerTask task; class MyTimerTask extends TimerTask{ public void run() { isExit = false; } } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if(isExit == false ) { isExit = true; Toast.makeText(this, "再按一次後退鍵退出應用程式", Toast.LENGTH_SHORT).show(); if(task!=null) task.cancel(); // 將原任務從佇列中移除 task = new MyTimerTask(); // 新建一個任務 tExit.schedule(task, 2000); } else { finish(); System.exit(0); } } return false; }
經過測試,功能正常,還有一種簡便方法也和大家分享一下:
private long exitTime = 0; public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-exitTime) > 2000){ Toast.makeText(getApplicationContext(), "再按一次後退鍵退出程式", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { //退出程式碼 } return true; } return super.onKeyDown(keyCode, event); }