歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android中Activity實現再按一次退出

Android中Activity實現再按一次退出

日期:2017/3/1 10:33:06   编辑:Linux編程

在這裡,最主要的是覆寫onKeyDown(int, KeyEvent)方法。

對於實現在一定時間內再按一次退出,思路可以如下:

編寫一個輔助類,裡面有成員變量boolean isWillExit,當它為true時,則再按一次返回鍵退出。第一次按返回鍵時,isWillExit設置為true,再編寫一個Runnable實例,在指定時間後設置isWillExit為false。

詳細看代碼吧。代碼如下:

以下代碼在Activity中

  1. Exit exit = new Exit();
  2. // ...
  3. @Override
  4. public boolean onKeyDown(int keyCode, KeyEvent event) {
  5. if (keyCode == KeyEvent.KEYCODE_BACK) {
  6. pressAgainExit();
  7. return true;
  8. }
  9. return super.onKeyDown(keyCode, event);
  10. }
  11. /**
  12. * 再按一次退出程序。
  13. */
  14. private void pressAgainExit() {
  15. if (exit.isExit()) {
  16. finish();
  17. } else {
  18. Toast.makeText(getApplicationContext(), "再按一次退出程序",
  19. 1000).show();
  20. exit.doExitInOneSecond();
  21. }
  22. }

下面是一個輔助類。

  1. class Exit {
  2. private boolean isExit = false;
  3. private Runnable task = new Runnable() {
  4. @Override
  5. public void run() {
  6. isExit = false;
  7. }
  8. };
  9. public void doExitInOneSecond() {
  10. isExit = true;
  11. HandlerThread thread = new HandlerThread("doTask");
  12. thread.start();
  13. new Handler(thread.getLooper()).postDelayed(task, 1000);
  14. }
  15. public boolean isExit() {
  16. return isExit;
  17. }
  18. public void setExit(boolean isExit) {
  19. this.isExit = isExit;
  20. }
  21. }
Copyright © Linux教程網 All Rights Reserved