“再按一次返回键退出程序”实现

“再按一次返回键退出程序”实现

问自己一个为什么?

每个app中都有退出这个响应,android是通过按“返回键”退出程序;在用户使用app时不免会出现一些“误操作”按了一下返回键,退出了程序,这样的用户体验是不友好的。

所以,就有必要对返回键进行判断,判断用户是否要退出。一般我们的判断条件是2s内按下返回键俩次就退出程序。

思路导析

在第一次按下“back”键时记录下当前系统时间存储在变量“exittime”;在第二次按下时,将当前系统时间与“exittime”比较,如果小于2秒就退出程序,反之,将当前时间存储于“exittime”。

代码实现

 private long exittime = 0;

    @Override
    public void onBackPressed() {
            if (System.currentTimeMillis() - exittime < 2000){
                super.onBackPressed();
            }else {
                Mytools.ShowToast(MainActivity.this,getString(R.string.string_exit));
                exittime = System.currentTimeMillis();
            }
        }
    }

代码扩展实现

加入了判断抽屉的状态


private long exittime = 0;

    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            if (System.currentTimeMillis() - exittime < 2000){
                super.onBackPressed();
            }else {
                Mytools.ShowToast(MainActivity.this,getString(R.string.string_exit));
                exittime = System.currentTimeMillis();
            }

        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值