您当前的位置: 首页 >  android

Kevin-Dev

暂无认证

  • 0浏览

    0关注

    544博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Android 项目必备(十五)--> 实现 “再按一次退出程序” 功能

Kevin-Dev 发布时间:2018-10-16 23:21:44 ,浏览量:0

在这里插入图片描述

文章目录
      • 介绍
      • 1. 此功能的意义
      • 2. 功能实现
      • 3. 代码实现

介绍

在项目中,经常会看到这样的“再按一次退出程序”的小功能需求。 在这里插入图片描述

最常见的实现方式:

  • 多线程 Handler( )
  • 计时器 Timetask( )
1. 此功能的意义

作为一名程序猿,理解功能的使用场景能有助于选择更好地方式进行功能开发:

  • 问:为什么要做一个让用户点两次才能退出的功能呢?这不是明显加大了用户退出的操作成本吗?
  • 答:对于移动使用场景,用户的注意力分散,容易出现误操作行为,通过点击两次才能退出是为了降低用户误操作退出的概率
2. 功能实现

在这里插入图片描述

3. 代码实现

通过在需要退出页面的 Activity 里复写 onKeyDown() 方法实现功能逻辑,从而实现该功能。

//声明一个long类型变量:用于存放上一点击“返回键”的时刻
  private long mExitTime;
  @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        //判断用户是否点击了“返回键”
        if (keyCode == KeyEvent.KEYCODE_BACK) {
                //与上次点击返回键时刻作差
            if ((System.currentTimeMillis() - mExitTime) > 2000) {
                    //大于2000ms则认为是误操作,使用Toast进行提示
                Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
                //并记录下本次点击“返回键”的时刻,以便下次进行判断
                mExitTime = System.currentTimeMillis();
            } else {
                    //小于2000ms则认为是用户确实希望退出程序-调用System.exit()方法进行退出
                System.exit(0);
            }
            return true;
     }
            return super.onKeyDown(keyCode, event);
    }
关注
打赏
1658837700
查看更多评论
立即登录/注册

微信扫码登录

0.0364s