国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 雙擊返回鍵退出程序的方法總結

2019-12-12 02:44:32
字體:
來源:轉載
供稿:網友

Android 雙擊返回鍵退出程序的方法總結

下面先說說LZ思路,具體如下:

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);    }  }

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 土默特右旗| 葫芦岛市| 堆龙德庆县| 长治市| 普格县| 云阳县| 临西县| 巴林右旗| 英德市| 巴楚县| 天津市| 兖州市| 隆回县| 广水市| 宁陵县| 全南县| 日土县| 镇平县| 铁岭县| 清水河县| 石泉县| 郸城县| 岢岚县| 锦屏县| 舟曲县| 筠连县| 永城市| 马关县| 抚松县| 宜良县| 汾西县| 靖江市| 昌都县| 温泉县| 蓝田县| 资中县| 津市市| 柳河县| 咸阳市| 萍乡市| 西宁市|