今天作了一下連續點兩次退出的代碼,挺有用的,能夠看看 java
並且dispatchKeyEvent在監聽的時候不只會監聽按下的操做,手機離開的操做也會監聽到,這就是有些朋友發現點了一次,而這個方法執行了兩次的緣由,解決辦法就是禁掉手指擡起的那個操做,代碼以下event.getAction() !=KeyEvent.ACTION_UP,在判斷條件中加上這一句就能夠了 ide
下面是連續點兩次退出鍵,退出程序的代碼 this
long flag= -1; @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() != KeyEvent.ACTION_UP) { if (flag == -1||System.currentTimeMillis() - flag >2000) { Toast.makeText(this, "再點擊一次退出", Toast.LENGTH_SHORT).show(); flag = System.currentTimeMillis(); } else if (System.currentTimeMillis() - flag < 2000) { Intent exit = new Intent(Intent.ACTION_MAIN); exit.addCategory(Intent.CATEGORY_HOME); exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(exit); System.exit(0); } } return true; }