连续点击返回键退出Android 应用

2023-03-06  本文已影响0人  果汁味Studio
问题

业务需要,在主界面连续点击返回键退出应用,记录一下。

解决方案

先说结论,在主界面Activity中添加如下代码

  /**
     * 记录上次点击返回键时间
     */
    private long lastClickTime = 0;

   /**
     * 两次回退点击时间间隔设置不小于2s
     */
    public static final long TIME_INTERVAL = 2000;

   ...
   ...
  
 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            exitApp();
            return false;
        }
        return super.onKeyDown(keyCode, event);
    }

 /**
     * 应用退出
     */
  private void exitApp() {
        if (System.currentTimeMillis() - lastClickTime > TIME_INTERVAL) {
            //距离上次退出时间超过默认间隔时间,则认为不是连续点击,并记录新的点击时间
            Toast.makeText(this, "连续两次点击退出应用",Toast.LENGTH_SHORT).show();
            lastClickTime = System.currentTimeMillis();
        } else {
            this.finish();
            System.exit(0);
        }
    }
   ...
   ...
  
混合开发应用的场景补充

代码如下:

@Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
      // 是否可以回退网页
      if (keyCode == KeyEvent.KEYCODE_BACK) {
          if (webView.canGoBack()) {
              webView.goBack();
              return true;
          } else {
              exitApp();
              return false;
          }
      }
      return super.onKeyDown(keyCode, event);
  }
上一篇下一篇

猜你喜欢

热点阅读