专栏首页恩蓝脚本Android 实现按两次返回键退出程序(两种方法)

Android 实现按两次返回键退出程序(两种方法)

Android 实现按两次返回键退出程序(两种方法)

第一种方法:

// 是否退出程序 
private static Boolean isExit = false; 
// 定时触发器 
private static Timer tExit = null; 

第二种方法:

public boolean onKeyUp(int keyCode, KeyEvent event) { 
 
 if (keyCode == KeyEvent.KEYCODE_BACK) { 
  if (isExit == false) { 
   isExit = true; 
   if (tExit != null) { 
    tExit.cancel(); // 将原任务从队列中移除 
   } 
   // 重新实例一个定时器 
   tExit = new Timer(); 
   TimerTask task = new TimerTask() { 
    @Override 
    public void run() { 
     isExit = false; 
    } 
   }; 
   Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); 
   // 延时两秒触发task任务 
   tExit.schedule(task, 2000); 
  } else { 
   finish(); 
   System.exit(0); 
  } 
  return true; 
 } 
 return super.onKeyUp(keyCode, event); 
} 

原理很简单:定义一个TimerTask定时器和一个是否退出程序的标识isExit,第一次按返回键,赋值isExit标识为true,开启定时器TimerTask 任务,两秒钟后赋值isExit标识为false,所以用户在这两秒中内再按一次返回键,则退出程序。否则定时器TimerTask任务执行,标志为false。原理就是这么简单~

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android Handler机制的工作原理详析

    上一次写完Binder学习笔记之后,再去看一遍Activity的启动流程,因为了解了Binder的基本原理,这次看印象会更深一点,学习效果也比以前好很多。本来打...

    砸漏
  • linux中ftp服务搭建需要注意的地方

    adduser -m -d /home/data/ftp -s /bin/sh -g root ftptest3

    砸漏
  • Windows环境下2款免费好用的压缩软件7-Zip & Bandizip

    国内XX压缩软件,经常弹出小广告,就连WinRAR老牌压缩软件自从推出个人免费版之后,也不例外。如果您还在寻找免费、好用并且无广告的压缩软件,以下2款值得一试。

    砸漏
  • [周末往期回顾]Oracle基本参数(SGA_TARGET)

    第一期就从基本的初始化参数讲起,一篇一个参数,会尽可能的具体.  如无特殊说明数据库版本为11.2.0.4

    bsbforever
  • python调用cmd运行GDAL报错解决:ERROR 1: PROJ

    这个问题爆的有点莫名其妙,代码~环境基本没什么大的变化,好端端就报错了,原先的代码运行了很久才发现,没有结果?摸排了好久都没发现问题。直到pycharm和spy...

    一个有趣的灵魂W
  • 【人脸表情识别】情绪识别相关会议、比赛汇总(2018-2020)

    前面专栏中,我们介绍了有关基于图片/视频的人脸表情识别的相关内容,也了解了通过回归的方式来理解表情的方式——基于连续模型的人脸表情识别。在专栏的最后一篇文章中,...

    用户1508658
  • 比例字体&等宽字体

    我们都知道等宽字体和比例字体的区别,就在于比例字体(Monospaced Font)即每个字母宽度是按一定比例自动调整的,而等宽字体(Proportional ...

    练小习
  • Oracle基本参数(SGA_TARGET)

    第一期就从基本的初始化参数讲起,一篇一个参数,会尽可能的具体. 如无特殊说明数据库版本为11.2.0.4

    bsbforever
  • 如何优雅地使用Mybatis逆向工程生成类

    朱季谦
  • 现代Web开发教程系列_01

    jeremyxu

扫码关注云+社区

领取腾讯云代金券