Android退出事件处理

Posted changchou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android退出事件处理相关的知识,希望对你有一定的参考价值。

为了防止用户误点退出键,很多应用都需要按两次退出键才会退出程序。下面介绍两种方法实现:

按照两次退出键的时间判断:

private long lastClickTime = 0;

    @Override
    public void onBackPressed() {
        if (lastClickTime <= 0) {
            Toast.makeText(this, "再按一次后退键退出应用", Toast.LENGTH_SHORT).show();
            lastClickTime = System.currentTimeMillis();
        } else {
            long currentClickTime = System.currentTimeMillis();
            if (currentClickTime - lastClickTime < 2000){
                finish();
            } else {
                Toast.makeText(this, "再按一次后退键退出应用", Toast.LENGTH_SHORT).show();
                lastClickTime = System.currentTimeMillis();
            }
        }

按照是否连续点击退出键判断:

  protected int mFinishCount = 0;

  @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        mFinishCount = 0;
        return super.dispatchTouchEvent(ev);
    }

    @Override
    public void finish() {
        mFinishCount++;
        if (mFinishCount == 1) {
            Toast.makeText(this, "再按一次退出!", Toast.LENGTH_LONG).show();
        } else if (mFinishCount == 2) {
            super.finish();
        }
    }

 

以上是关于Android退出事件处理的主要内容,如果未能解决你的问题,请参考以下文章

Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段

如何防止在 Android 片段/活动中意外退出应用程序?

Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)

当我将片段添加到我的视图寻呼机时(在嵌套滚动视图中),我无法从具有设备后退按钮的应用程序退出

Android导航组件ActionBar向上/父事件处理

Android:将片段和弹出窗口的点击事件中生成的变量传递给活动的方法