Android 雙擊返回鍵退出程序的方法總結(jié)
Android 雙擊返回鍵退出程序的方法總結(jié)
下面先說(shuō)說(shuō)LZ思路,具體如下:
1. 第一種就是根據(jù)用戶點(diǎn)擊倆次的時(shí)間間隔去判斷是否退出程序;
2. 第二種就是使用Android中計(jì)時(shí)器(Timer),其實(shí)這倆種都差不多.
思路是有了,,,接下來(lái)要怎么開(kāi)搞呢???用戶點(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()干掉他--------------
//記錄用戶首次點(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)沒(méi)有按下返回鍵,則啟動(dòng)定時(shí)器取消掉剛才執(zhí)行的任務(wù)
}else{
finish();
System.exit(0);
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Android 單雙擊實(shí)現(xiàn)的方法步驟
- Android實(shí)現(xiàn)雙擊返回鍵退出應(yīng)用實(shí)現(xiàn)方法詳解
- Android雙擊事件攔截方法
- Android使用PhotoView實(shí)現(xiàn)圖片雙擊放大單擊退出效果
- Android 雙擊Back鍵退出應(yīng)用的實(shí)現(xiàn)方法
- Android實(shí)現(xiàn)雙擊TitleBar回頂部的功能示例代碼
- Android 在viewPager中雙指縮放圖片雙擊縮放圖片單指拖拽圖片的實(shí)現(xiàn)思路
- Android中雙擊返回鍵退出應(yīng)用實(shí)例代碼
- Android 高仿微信朋友圈動(dòng)態(tài)支持雙擊手勢(shì)放大并滑動(dòng)查看圖片效果
- Android 自定義View實(shí)現(xiàn)單擊和雙擊事件的方法
- Android 屏幕雙擊事件的捕獲簡(jiǎn)單示例
- Android 實(shí)現(xiàn)雙擊退出的功能
- Android App中實(shí)現(xiàn)可以雙擊放大和縮小圖片功能的實(shí)例
- Android實(shí)現(xiàn)ImageView圖片雙擊放大及縮小
- Android雙擊退出的實(shí)現(xiàn)方法
- Android雙擊返回鍵退出程序的實(shí)現(xiàn)方法
- 使用python編寫(xiě)android截屏腳本雙擊運(yùn)行即可
- Android開(kāi)發(fā)實(shí)現(xiàn)控件雙擊事件的監(jiān)聽(tīng)接口封裝類
相關(guān)文章
ListView嵌套GridView使用詳解及注意事項(xiàng)
ListView嵌套GridView即ListView的每個(gè)Item中都包含一個(gè)GridView;需要注意的是由于ListView和GridView都是可滑動(dòng)的控件. 所以需要自定義GridView,重寫(xiě)其onMeasure()方法2013-06-06
Android自定義控件之繼承ViewGroup創(chuàng)建新容器
這篇文章主要介紹了Android自定義控件之繼承ViewGroup創(chuàng)建新容器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
Android ReboundScrollView仿IOS拖拽回彈效果
這篇文章主要為大家詳細(xì)介紹了Android ReboundScrollView仿IOS拖拽回彈效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
Android ViewPager實(shí)現(xiàn)無(wú)限循環(huán)輪播廣告位Banner效果
這篇文章主要為大家詳細(xì)介紹了Android ViewPager實(shí)現(xiàn)無(wú)限循環(huán)輪播廣告位Banner效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Android仿iOS實(shí)現(xiàn)側(cè)滑返回功能(類似微信)
這篇文章主要為大家詳細(xì)介紹了Android仿iOS實(shí)現(xiàn)側(cè)滑返回功能,類似微信功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Android實(shí)現(xiàn)點(diǎn)擊Button產(chǎn)生水波紋效果
這篇文章主要介紹了Android實(shí)現(xiàn)點(diǎn)擊Button產(chǎn)生水波紋效果,需要的朋友可以參考下2016-01-01
Android 自定義View時(shí)使用TypedArray配置樣式屬性詳細(xì)介紹
這篇文章主要介紹了Android 自定義View時(shí)使用TypedArray配置樣式屬性詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-11-11
Android系統(tǒng)添加自定義鼠標(biāo)樣式通過(guò)按鍵切換實(shí)例詳解
在本篇文章里小編給大家整理的是關(guān)于Android系統(tǒng)添加自定義鼠標(biāo)樣式通過(guò)按鍵切換實(shí)例詳解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2019-11-11
ubuntu環(huán)境下反編譯android apk的方法
今天小編就為大家分享一篇關(guān)于ubuntu環(huán)境下反編譯android apk的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03

