91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android應用中怎么實現一個雙擊返回鍵退出程序功能

發布時間:2020-12-07 16:21:31 來源:億速云 閱讀:147 作者:Leah 欄目:移動開發

Android應用中怎么實現一個雙擊返回鍵退出程序功能?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

具體如下: 

1. 第一種就是根據用戶點擊倆次的時間間隔去判斷是否退出程序;

2. 第二種就是使用Android中計時器(Timer),其實這倆種都差不多.

思路是有了,,,接下來要怎么開搞呢???用戶點擊肯定會觸發相應的事件,,,我們先來看下面倆個事件的作用。。。

Activity.onKeyDown();

當某個鍵被按下時會觸發,但不會被任何的該Activity內的任何view處理。

默認按下KEYCODE_BACK鍵后會回到上一個Activity。

Activity.onKeyUp():

當某個按鍵被按下,松開后觸發,但不會被任何的該Activity內的任何view處理。

默認沒有執行任何操作,只是簡單的給一個false作為返回值。

So,,,接下來分別使用如上倆個方法干掉這個當年的攔路虎~

One Way:onKeyUp()

  //--------------使用onKeyUp()干掉他--------------

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

  @Override
  public boolean onKeyUp(int keyCode, KeyEvent event) {
    switch (keyCode){
      case KeyEvent.KEYCODE_BACK:
        long secondTime=System.currentTimeMillis();
        if(secondTime-firstTime>2000){
          Toast.makeText(MainActivity.this,"再按一次退出程序--->onKeyUp",Toast.LENGTH_SHORT).show();
          firstTime=secondTime;
          return true;
        }else{
          System.exit(0);
        }
        break;
    }
    return super.onKeyUp(keyCode, event);
  }

Two Way:onKeyDown()

 //--------------使用onKeyDown()干掉他--------------

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

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

Three Way:Timer

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

  private void exitByDoubleClick() {
    Timer tExit=null;
    if(!isExit){
      isExit=true;
      Toast.makeText(MainActivity.this,"再按一次退出程序--->Timer",Toast.LENGTH_SHORT).show();
      tExit=new Timer();
      tExit.schedule(new TimerTask() {
        @Override
        public void run() {
          isExit=false;//取消退出
        }
      },2000);// 如果2秒鐘內沒有按下返回鍵,則啟動定時器取消掉剛才執行的任務
    }else{
      finish();
      System.exit(0);
    }
  }

看完上述內容,你們掌握Android應用中怎么實現一個雙擊返回鍵退出程序功能的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彭水| 安国市| 黄骅市| 文山县| 三穗县| 织金县| 水富县| 新丰县| 大名县| 资讯| 西盟| 雅江县| 抚松县| 陆川县| 集安市| 松溪县| 台北县| 尚志市| 罗江县| 库伦旗| 上高县| 安龙县| 曲靖市| 河北区| 灵璧县| 庆元县| 高邮市| 南昌县| 奉贤区| 偃师市| 南陵县| 石城县| 桐乡市| 保亭| 古丈县| 海口市| 兴化市| 西安市| 普兰县| 新干县| 南皮县|