Android App中連續點擊Back鍵退出應用

fydxdk 10年前發布 | 2K 次閱讀 Java Android

   現在的App就用越來越人性化了,為了滿足用戶的體驗欲望,從各個方面都進行了仔細處理。比如我們點擊第一次點擊Back鍵的時候,會溫馨提示“再按一次返回鍵退出應用”等,今天 就記錄下自己在項目中寫的這個小功能:

首先寫個工具類:

public class DoubleClickExitApp {

private Context mcontext; /是否是再次點擊back鍵*/ private boolean isOnKeyBack; private Handler mHandler; /退出提示Toast*/ private Toast mExitToast;

public DoubleClickExitApp(Context context) { this.mcontext = context; this.mHandler = new Handler(Looper.getMainLooper()); }

/所在Activity中的點擊返回事件處理*/ public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode != KeyEvent.KEYCODE_BACK) {//如果不是點擊的返回鍵,則返回false return false; } if(isOnKeyBack) { mHandler.removeCallbacks(onBackExitRunnable); if(mExitToast != null){ mExitToast.cancel(); } /直接退出*/ AppManager.getAppManager().AppExit(mcontext); return true; } else { isOnKeyBack = true; if(mExitToast == null) { mExitToast = Toast.makeText(mcontext, "再按一次返回鍵退出應用", Toast.LENGTH_SHORT); } mExitToast.show(); mHandler.postDelayed(onBackExitRunnable, 2000); return true; } }

private Runnable onBackExitRunnable = new Runnable() {

  @Override
  public void run() {
     isOnKeyBack = false;
     if(mExitToast != null){
        mExitToast.cancel();
     }
  }

}; }</pre>

然后在對應的Activity或是主頁面中直接調用:

public class MainActivity extends Activity{
     private DoubleClickExitApp mDoubleClickExitApp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     mDoubleClickExitApp = new DoubleClickExitApp(this);

}    @Override    protected void onDestroy() {        super.onDestroy();    }   /**在處理onKeyDown事件中調用我們寫的工具類方法就可以*/    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_BACK) {               return mDoubleClickExitApp.onKeyDown(keyCode, event);        }else{

      return super.onKeyDown(keyCode, event);

   }


}

</pre>

 本文由用戶 fydxdk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!