Android双击退出及n次点击事件

来源:互联网 发布:tplink端口转发 编辑:程序博客网 时间:2024/06/03 09:10

方法一:
【原理】:定义一个boolean型变量canExit ,每一次点击时判断canExit 是否为true,是则退出;否则,令canExit = true,同时添加一个延时线程,设置2秒后将canExit 设置为false,确保2秒内双击才可退出。

    private ExitRunnable mExitRunnable;    private boolean canExit = false;    // 双击退出间隔时长    private final static int DOUBLE_CLAP_TIME = 2*1000;    /**     * 【双击退出】*/    @Override    public void onBackPressed() {        if (canExit) {            finish();            super.onBackPressed();        } else {            canExit = true;            if (mExitRunnable == null) {                mExitRunnable = new ExitRunnable();            }            new Handler().postDelayed(mExitRunnable, DOUBLE_CLAP_TIME);        }    }    private class ExitRunnable implements Runnable {        @Override        public void run() {            canExit = false;        }    }

方法二:n次点击实现方法
【原理】:定义一个n位long型数组,记录最近n次点击的时间,若时间差值小于定义的n击时间,则执行点击退出代码。双击即令n = 2。

long[] mHits = new long[n];  private final static int N_CLAP_TIME = 2*1000;private void doubleClick(){     // 实现左移     System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);     // 将最后一个位置更新为距离开机的时间,如果最后一个时间和最开始时间小于2000,即n击     mHits[mHits.length - 1] = SystemClock.uptimeMillis();     if ( N_CLAP_TIME >= (mHits[mHits.length - 1] - mHits[0])  ) {           // 在这里写退出代码           // ......     }}
0 0