Android應(yīng)用中怎么實(shí)現(xiàn)一個(gè)雙擊返回鍵退出程序功能?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),沿灘企業(yè)網(wǎng)站建設(shè),沿灘品牌網(wǎng)站建設(shè),網(wǎng)站定制,沿灘網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,沿灘網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
具體如下:
1. 第一種就是根據(jù)用戶(hù)點(diǎn)擊倆次的時(shí)間間隔去判斷是否退出程序;
2. 第二種就是使用Android中計(jì)時(shí)器(Timer),其實(shí)這倆種都差不多.
思路是有了,,,接下來(lái)要怎么開(kāi)搞呢???用戶(hù)點(diǎn)擊肯定會(huì)觸發(fā)相應(yīng)的事件,,,我們先來(lái)看下面?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è)按鍵被按下,松開(kāi)后觸發(fā),但不會(huì)被任何的該Activity內(nèi)的任何view處理。
默認(rèn)沒(méi)有執(zhí)行任何操作,只是簡(jiǎn)單的給一個(gè)false作為返回值。
So,,,接下來(lái)分別使用如上倆個(gè)方法干掉這個(gè)當(dāng)年的攔路虎~
One Way:onKeyUp()
//--------------使用onKeyUp()干掉他-------------- //記錄用戶(hù)首次點(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()干掉他-------------- //記錄用戶(hù)首次點(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)沒(méi)有按下返回鍵,則啟動(dòng)定時(shí)器取消掉剛才執(zhí)行的任務(wù) }else{ finish(); System.exit(0); } }
看完上述內(nèi)容,你們掌握Android應(yīng)用中怎么實(shí)現(xiàn)一個(gè)雙擊返回鍵退出程序功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
新聞標(biāo)題:Android應(yīng)用中怎么實(shí)現(xiàn)一個(gè)雙擊返回鍵退出程序功能
網(wǎng)站路徑:http://chinadenli.net/article0/jsiooo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、小程序開(kāi)發(fā)、電子商務(wù)、域名注冊(cè)、網(wǎng)站建設(shè)、用戶(hù)體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
營(yíng)銷(xiāo)型網(wǎng)站建設(shè)知識(shí)