免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Android實現雙擊返回鍵退出應用實現方法詳解

前言

創新互聯建站成立于2013年,是專業互聯網技術服務公司,擁有項目做網站、網站設計網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元吉林做網站,已為上家服務,為吉林各地企業和個人服務,聯系電話:028-86922220

現在市面上很多應用都會有當用戶按返回鍵的時候提示用戶:再按一次將退出應用的提示,也就是雙擊雙擊返回鍵退出應用,接下來我們就用幾種辦法來實現這個功能

效果圖

Android實現雙擊返回鍵退出應用實現方法詳解

實現

第一種辦法

響應Activity的 onKeyUp事件,兩次點擊時間大于2秒鐘就不響應,小于2秒鐘就退出程序
代碼:

//記錄用戶首次點擊返回鍵的時間
 private long firstTime = 0;

 /**
  * 第一種解決辦法 通過監聽keyUp
  * @param keyCode
  * @param event
  * @return
  */
 @Override
 public boolean onKeyUp(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
   long secondTime = System.currentTimeMillis();
   if (secondTime - firstTime > 2000) {
    Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
    firstTime = secondTime;
    return true;
   } else {
    System.exit(0);
   }
  }

  return super.onKeyUp(keyCode, event);
 }

第二種辦法

和第一種辦法一樣,這不過這次響應onKeyDown事件
代碼:

 /**
  * 第二種辦法
  * @param keyCode
  * @param event
  * @return
  */
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
   long secondTime = System.currentTimeMillis();
   if (secondTime - firstTime > 2000) {
    Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
    firstTime = secondTime;
    return true;
   } else {
    System.exit(0);
   }
  }
  return super.onKeyDown(keyCode, event);
 }

第三種辦法

直接重寫onBackPressed()方法
代碼:

 /**
  * 第三種方法
  */
 @Override
 public void onBackPressed() {
  long secondTime = System.currentTimeMillis();
  if (secondTime - firstTime > 2000) {
   Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
   firstTime = secondTime;
  } else {
   System.exit(0);
  }

第四種辦法

通過線程延時的辦法實現,借助Timer
代碼:

/**
  * 第四種方法
  */
 @Override
 public void onBackPressed() {
  if (!mBackKeyPressed) {
   Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
   mBackKeyPressed = true;
   new Timer().schedule(new TimerTask() {
    @Override
    public void run() {
     mBackKeyPressed = false;
    }
   }, 2000);
  } else {
   this.finish();
   System.exit(0);
  }
 }

第五種辦法

在onKeyUp()方法內使用Timer

  /**
  * 第五種辦法
  * @param keyCode
  * @param event
  * @return
  */
 @Override
 public boolean onKeyUp(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
   if (!mBackKeyPressed) {
    Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
    mBackKeyPressed = true;
    new Timer().schedule(new TimerTask() {
     @Override
     public void run() {
      mBackKeyPressed = false;
     }
    }, 2000);
    return true;
   } else {
    this.finish();
    System.exit(0);
   }
  }
  return super.onKeyUp(keyCode, event);
 }

第六種辦法

在onKeyDown()方法內使用Timer

 /**
  * 第六種辦法
  * @param keyCode
  * @param event
  * @return
  */
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
   if (!mBackKeyPressed) {
    Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
    mBackKeyPressed = true;
    new Timer().schedule(new TimerTask() {
     @Override
     public void run() {
      mBackKeyPressed = false;
     }
    }, 2000);
    return true;
   } else {
    this.finish();
    System.exit(0);
   }
  }
  return super.onKeyDown(keyCode, event);
 }

OK,到此就結束了,原理都差不多。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。

網站欄目:Android實現雙擊返回鍵退出應用實現方法詳解
本文地址:http://m.newbst.com/article8/jocdip.html

成都網站建設公司_創新互聯,為您提供GoogleChatGPT企業網站制作網站設計公司電子商務虛擬主機

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

小程序開發