android双击退出,用户明确双击退出时,不显示提示

// 特性:用户明确双击退出时,不显示提示,意外单击时,提示双击可退出应用

// 自我测试,明确双击退出时,双击时间在130 ms(误差20 ms)内。模拟缓慢双击测试,时间在200-375 ms之间,于是确定双击时间在400ms内不提示,超出后显示“再点击一次退出应用”,用户从看到提示到再次单击有1600 ms时间。

long[] mHits = new long[2];
@Override
public void onBackPressed() {
    System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
    //实现左移,然后最后一个位置更新为距离开机的时间,如果最后一个时间和最开始时间小于2000,即n击
    mHits[mHits.length - 1] = SystemClock.uptimeMillis();
    long spaceTime = mHits[mHits.length - 1] - mHits[0];
    if ( 2*1000 >= spaceTime  ) {
        finish();
        isDoubleClick = true;
    }else {
        if (mExitRunnable == null) {
            mExitRunnable = new ExitRunnable();
        }
        new Handler().postDelayed(mExitRunnable, 400);
    }
}

boolean isDoubleClick = false;
ExitRunnable mExitRunnable;
private class ExitRunnable implements Runnable {
    @Override
    public void run() {
        if (!isDoubleClick){
            Toast.makeText(MainActivity.this, "再点击一次可退出应用!", Toast.LENGTH_SHORT).show();
        }
    }
}
    原文作者:沐之心上
    原文地址: https://www.jianshu.com/p/02bba2abd06e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞