Android应用点击两次back退出

在android开发过程中,点击两次back退出应用还是很常见的了。实现这一效果也不是很难,思路就是记录两次点击back的时间差。只要这个时间差在我们设定的范围内,就可以将activity移除出栈。

方式一:重写onBackPressed

重写onBackPressed()方法,执行exit()方法,在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在 Handler中将此值还原成false。如果在发送消息间隔的2秒内,再次按了Back键,则再次执行exit方法,此时isExit的值已为 true,则会执行退出的方法。

public class MainActivity extends AppCompatActivity {private static boolean isExit = false;  // 标识是否退出private static Handler mHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);isExit = false;}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_main);initView(); }@Overridepublic void onBackPressed() {//如果不注释掉这一行,白费。还是会直接调finish//super.onBackPressed();exit();}private void exit() {if (!isExit) {isExit = true;Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();// 利用handler延迟发送更改状态信息mHandler.sendEmptyMessageDelayed(0, 2000);} else {finish();}}}

方式二:记录时间差

重写onKeyDown方法,判断两次点击的时间差。

 private long time;@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if (System.currentTimeMillis() - time > 2000) {ToastUtils.showToast(getApplicationContext(),"再按一次退出程序");time = System.currentTimeMillis();} else {finish();}return true;}return super.onKeyDown(keyCode, event);}

Android应用点击两次back退出相关推荐

  1. android 点击事件两次,Android 按钮点击两次触发不同的事件

    标题:Android 按钮点击两次触发不同的事件 方案:采用flag标记的方式,每次单击标记为0,再次点击判断flag的值 package com.ldl.ui; import android.app ...

  2. Android实现点击两次返回键退出

    转自 http://blog.sina.com.cn/s/blog_4fd2a65a0101gg2o.html 在做安卓应用是我们经常要判断用户对返回键的操作,一般为了防止误操作都是在用户连续按下两次 ...

  3. android 点击两次退出,Android实现点击两次返回键退出

    可以用Handler public class MainActivity extends Activity{ //定义一个变量,来标识是否退出 private static boolean isExi ...

  4. android快速点击两次,如何通过在Android中快速单击两次按钮来防...

    如果我在我的Android应用中快速单击按钮,似乎它后面的代码运行了两次. 如果我两次单击菜单按钮,则必须启动onclick的活动只会启动两次,而我必须退出两次. 这真的很烦人,因为如果我单击菜单按钮 ...

  5. java中后退键_java - 单击后退按钮两次以退出活动

    java - 单击后退按钮两次以退出活动 我最近在很多Android应用和游戏中都注意到了这种模式:当点击后退按钮"退出"应用程序时,Toast会出现类似于"请再次单击B ...

  6. Android仿QQ ios dialog,仿QQ退出向上菜单

    Android仿QQ ios dialog,仿QQ退出向上菜单 EasyDialog两种模式 仿QQ退出向上菜单,自定义向上菜单              github地址:https://githu ...

  7. android menu点击事件6,Android Menu

    Android Menu 1.Android Menu(菜单)分为两种 选项菜单 OptionMenu 上下文菜单ContextMenu 2. 实现目录的基本操作 在xml文件中定义布局文件 重写on ...

  8. android快速点击分析

    android快速点击分析 要点思路: 1 一般我们会这样考虑,当两次按按钮的时间小于1s为快速点击,那么需要记住两次点击的时间间隔 2 为了方便记住点击按钮的时间,我们需要记住每次按钮点击的时间 . ...

  9. Android对点击事件的处理

    前两天想研究下Android点击事件是如何处理的,翻译了一篇国外文件,英文原版下载地址附在文后. Android怎样处理点击事件 Android的点击事件封装在MotionEvent中,点击事件可以分 ...

最新文章

  1. 用 Redis 实现分布式锁(分析)
  2. websocket学习和群聊实现
  3. [Leetcode]160. Intersection of Two Linked Lists
  4. 爬虫 spider05——使用httpclient发送get请求、post请求
  5. 安装引导黑屏_南京课工场IT培训:引导过程与服务控制(理论笔记篇)
  6. 如何运用领域驱动设计 - 存储库
  7. 2017.9.29 数三角形 思考记录
  8. utu2440 vxWorks DM9000A驱动移植
  9. kvm虚拟机_关于虚拟机管理KVM,基本操作都在这里,懒人必备,拿去收藏
  10. 浅谈 Android Dex 文件
  11. NetSuite导出CSV文件用Excel打开是乱码
  12. springboot发送短信验证码
  13. Embedding技术
  14. matlab在概率统计中的应用
  15. VA虚拟应用匠心独妙,细节的精彩
  16. android拼图游戏报告,拼图游戏报告分析报告.doc
  17. Notability work with acrobat pro dc
  18. 第十章 Java数据结构
  19. 谜题20:我的类是什么?
  20. 存储管理-----操作系统

热门文章

  1. MySQL主从延时这么长,要怎么优化
  2. mysql left join的深入探讨
  3. Mysql找回管理员password
  4. 【转】Win7+Ubuntu12.04.1硬盘安装错误及解决方案----不错
  5. nginx处理web请求分析
  6. SQL SERVER2005加密解密数据
  7. Oracle体系结构中的各种名称
  8. 比较难理解的知识汇集
  9. 汇编:模拟C语言实现break与continue
  10. js时间格式化函数,支持Unix时间戳