Android 双击返回键退出程序的方法总结

Android 双击返回键退出程序的方法总结

下面先说说LZ思路,具体如下:

1. 第一种就是根据用户点击俩次的时间间隔去判断是否退出程序;

2. 第二种就是使用Android中计时器(Timer),其实这俩种都差不多.

思路是有了,,,接下来要怎么开搞呢???用户点击肯定会触发相应的事件,,,我们先来看下面俩个事件的作用。。。

Activity.onKeyDown();

当某个键被按下时会触发,但不会被任何的该Activity内的任何view处理。

默认按下KEYCODE_BACK键后会回到上一个Activity。

Activity.onKeyUp():

当某个按键被按下,松开后触发,但不会被任何的该Activity内的任何view处理。

默认没有执行任何操作,只是简单的给一个false作为返回值。

So,,,接下来分别使用如上俩个方法干掉这个当年的拦路虎~

One Way:onKeyUp()

//--------------使用onKeyUp()干掉他-------------- //记录用户首次点击返回键的时间 private long firstTime=0; @Override public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode){ case KeyEvent.KEYCODE_BACK: long secondTime=System.currentTimeMillis(); if(secondTime-firstTime>2000){ Toast.makeText(MainActivity.this,"再按一次退出程序--->onKeyUp",Toast.LENGTH_SHORT).show(); firstTime=secondTime; return true; }else{ System.exit(0); } break; } return super.onKeyUp(keyCode, event); }

Two Way:onKeyDown()

//--------------使用onKeyDown()干掉他-------------- //记录用户首次点击返回键的时间 private long firstTime=0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK && event.getAction()==KeyEvent.ACTION_DOWN){ if (System.currentTimeMillis()-firstTime>2000){ Toast.makeText(MainActivity.this,"再按一次退出程序--->onKeyDown",Toast.LENGTH_SHORT).show(); firstTime=System.currentTimeMillis(); }else{ finish(); System.exit(0); } return true; } return super.onKeyDown(keyCode, event); }

Three Way:Timer

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ exitByDoubleClick(); } return false; } private void exitByDoubleClick() { Timer tExit=null; if(!isExit){ isExit=true; Toast.makeText(MainActivity.this,"再按一次退出程序--->Timer",Toast.LENGTH_SHORT).show(); tExit=new Timer(); tExit.schedule(new TimerTask() { @Override public void run() { isExit=false;//取消退出 } },2000);// 如果2秒钟内没有按下返回键,则启动定时器取消掉刚才执行的任务 }else{ finish(); System.exit(0); } }

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

时间: 2024-09-16 00:13:50

Android 双击返回键退出程序的方法总结的相关文章

Android双击返回键退出程序的实现方法_Android

本文实例讲述了Android双击返回键退出程序的实现方法,是Android程序开发中一个非常实用的功能,分享给大家供大家参考之用.具体方法如下: 一.实现思路: 用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态.定时器是每次用户按下返回键才去创建. 二.功能代码: /** * 菜单.返回键响应 */ @Override public boolean onKeyDown(int keyCode,

Android双击返回键退出程序的实现方法

本文实例讲述了Android双击返回键退出程序的实现方法,是Android程序开发中一个非常实用的功能,分享给大家供大家参考之用.具体方法如下: 一.实现思路: 用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态.定时器是每次用户按下返回键才去创建. 二.功能代码: /** * 菜单.返回键响应 */ @Override public boolean onKeyDown(int keyCode,

Android中双击返回键退出应用实例代码

Android中双击返回键退出程序 1.在MyAppliction中(继承Application) //运用list来保存们每一个activity是关键 private List<Activity> mList = new LinkedList<Activity>(); //为了实现每次使用该类时不创建新的对象而创建的静态对象 private static MyApplication instance; //构造方法 public MyApplication() { } //实例化

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) {

Android 双击Back键退出应用的实现方法

Android 双击Back键退出应用的实现方法 实现原理: 双击退出程序的原理无非就是设置一个退出标识(询问是否退出),如果改变了这个标识(确认退出),则再次点击时立马退出,如果规定时间内没有退出,则延时重置这个标识(不退出). 延时重置: 使用 Java API 提供了 Timer 类,它能够执行定时任务.利用 Timer 就能够对标识进行延时重置. Timer 对象的 schedule( ) 方法需要一个 TimerTask 对象和一个时间长度(毫秒)作为参数.TimerTask 对象需要

Android 再按一次返回键退出程序实现思路_Android

用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dialog中的按钮.个人觉得"再按一次返回键退出程序"是best practice,实现也很简单,直接上代码: 复制代码 代码如下: private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEve

Android 再按一次返回键退出程序实现思路

用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dialog中的按钮.个人觉得"再按一次返回键退出程序"是best practice,实现也很简单,直接上代码: 复制代码 代码如下: private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEve

WP8 双击返回键退出

原文:WP8 双击返回键退出 bool isExit = false; // 构造函数 public MainPage() { InitializeComponent(); isExit = false; // 用于本地化 ApplicationBar 的示例代码 //BuildLocalizedApplicationBar(); } protected override void OnBackKeyPress(CancelEventArgs e) { if (!isExit) { isExit

Android 拦截返回键事件的实例详解

Android 拦截返回键事件的实例详解 KeyEvent类 Android.View.KeyEvent类中定义了一系列的常量和方法,用来描述Android中的 按键事件和返回键有关的常量和方法有. KeyEvent.KEYCODE_BACK: 表示key类型为返回键 KeyEvent.ACTION_DOWN:表示事件为按下key,如果一直按住不放,则会不停产生此事件. KeyEvent.ACTION_UP:表示事件为为放开key,一次点击key过程只会调用一次. public final in