您的位置:首页 > 移动开发 > Android开发

Android连按两次返回退出解决方法

2015-05-22 12:32 281 查看
本示例有较好的用户体验,但未能完美处理返回键按下和长按的冲突,暂时用标识符替代,仍需学习,望交流。

示例代码

[code]// 连续两次返回退出程序
    private long exitTime = 0;
    private boolean isFirst = false;// 是否第一次按下返回键

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (KeyEvent.KEYCODE_BACK == keyCode && event.getAction() == KeyEvent.ACTION_DOWN) {
            if ((System.currentTimeMillis() - exitTime) > 2000) {
                if (!isFirst) {
                    Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
                    isFirst = true;
                }
            } else {
                // 退出处理...
                finish();
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP
                && event.getAction() != KeyEvent.FLAG_LONG_PRESS) {// 这里屏蔽长按事件
            isFirst = false;
            exitTime = System.currentTimeMillis();
            return true;
        }
        return super.onKeyUp(keyCode, event);
    }


转载注明出处: /article/3589563.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐