Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android應用系列:雙擊返回鍵退出程序

Android應用系列:雙擊返回鍵退出程序

編輯:關於Android編程

前言     有一個很古老的應用技巧,一直被各種大大小小的app用得樂此不疲,那就是雙擊返回鍵退出程序。今天就寫寫它的實現代碼,非常簡單而且實用。   正文     雙擊返回鍵退出程序,一般有兩種實現思路,一種是用一個布爾值變量來記錄按鍵事件,並通過線程延時來實現效果;另外一種是直接通過記錄按鍵時間計算時間差實現功能,現在就跟大家分享下代碼吧、O(∩_∩)O哈哈~   1、利用線程延時實現     private static boolean mBackKeyPressed = false;//記錄是否有首次按鍵      @Override public void onBackPressed() {   if(!mBackKeyPressed){     Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();     mBackKeyPressed = true;     new Timer().schedule(new TimerTask() {//延時兩秒,如果超出則擦錯第一次按鍵記錄       @Override       public void run() {         mBackKeyPressed = false;       }     }, 2000);   }   else{//退出程序     this.finish();     System.exit(0);   } }   通過 mBackKeyPressed  來記錄是否有首次按返回鍵的記錄,如果不存在首次按鍵記錄,則Toast提示,並記錄首次按鍵記錄,並啟動線程在2秒後擦除該按鍵記錄。如果在線程海內擦除mBackKeyPressed 時又按下返回鍵,則執行else裡面的語句退出程序。   2、通過計算時間差實現     private long mPressedTime = 0;      @Override public void onBackPressed() {   long mNowTime = System.currentTimeMillis();//獲取第一次按鍵時間   if((mNowTime - mPressedTime) > 2000){//比較兩次按鍵時間差     Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();     mPressedTime = mNowTime;   }   else{//退出程序     this.finish();     System.exit(0);   } }   這裡是通過控制時間差來實現功能的,在首次按下返回鍵時,將會將當期時間賦值給mPressedTime並通過Toast提示用戶,在第二次按下返回鍵時,如果與 mPressedTime記錄的時間差值大於2秒則重新刷新mPressedTime的時間,如果小於2秒則執行else的語句退出程序。   PS:個人比較建議用時間差的方式來實現這個功能,因為代碼的簡單與穩定性都比線程延時相對好很多。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved