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

首頁(yè) > 系統(tǒng) > Android > 正文

Android 雙擊返回鍵退出程序的方法總結(jié)

2019-10-22 18:35:28
字體:
供稿:網(wǎng)友

Android 雙擊返回鍵退出程序的方法總結(jié)

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

1. 第一種就是根據(jù)用戶點(diǎn)擊倆次的時(shí)間間隔去判斷是否退出程序;

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

思路是有了,,,接下來要怎么開搞呢???用戶點(diǎn)擊肯定會(huì)觸發(fā)相應(yīng)的事件,,,我們先來看下面?zhèn)z個(gè)事件的作用。。。

Activity.onKeyDown();

當(dāng)某個(gè)鍵被按下時(shí)會(huì)觸發(fā),但不會(huì)被任何的該Activity內(nèi)的任何view處理。

默認(rèn)按下KEYCODE_BACK鍵后會(huì)回到上一個(gè)Activity。

Activity.onKeyUp():

當(dāng)某個(gè)按鍵被按下,松開后觸發(fā),但不會(huì)被任何的該Activity內(nèi)的任何view處理。

默認(rèn)沒有執(zhí)行任何操作,只是簡(jiǎn)單的給一個(gè)false作為返回值。

So,,,接下來分別使用如上倆個(gè)方法干掉這個(gè)當(dāng)年的攔路虎~

One Way:onKeyUp()

  //--------------使用onKeyUp()干掉他--------------  //記錄用戶首次點(diǎn)擊返回鍵的時(shí)間  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()干掉他--------------  //記錄用戶首次點(diǎn)擊返回鍵的時(shí)間  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秒鐘內(nèi)沒有按下返回鍵,則啟動(dòng)定時(shí)器取消掉剛才執(zhí)行的任務(wù)    }else{      finish();      System.exit(0);    }  }

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


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平罗县| 双鸭山市| 博白县| 上思县| 嫩江县| 东乌珠穆沁旗| 黄浦区| 防城港市| 堆龙德庆县| 同仁县| 和硕县| 阿荣旗| 诏安县| 山阳县| 米泉市| 南雄市| 奉化市| 清水县| 平邑县| 元江| 河南省| 大关县| 龙海市| 青田县| 澄城县| 屯门区| 大同县| 正蓝旗| 肇源县| 阜新市| 金溪县| 平度市| 沙田区| 义马市| 调兵山市| 自治县| 阜平县| 九江县| 高唐县| 乾安县| 区。|