Android双击返回键退出Activity的两种方法

在开发应用程序的时候,有一种功能是非常常用到的,那就是迅速双击返回按钮,然后实现退出Activity的功能。本人在网上看了很多资料代码,总结起来,主要有两种比较好的方式。一种是开线程延时执行,一种是记录按键时间计算时间差实现。现在跟大家分享一下,代码如下,希望对大家有帮助:

第一种:利用线程延时实现:

private int mBackKeyPressedTimes = 0;

        @Override
        public void onBackPressed() {
                if (mBackKeyPressedTimes == 0) {
                        Toast.makeText(this, "再按一次退出程序 ", Toast.LENGTH_SHORT).show();
                        mBackKeyPressedTimes = 1;
                        new Thread() {
                                @Override
                                public void run() {
                                        try {
                                                Thread.sleep(2000);
                                        } catch (InterruptedException e) {
                                                e.printStackTrace();
                                        } finally {
                                                mBackKeyPressedTimes = 0;
                                        }
                                }
                        }.start();
                        return;
                      else{
                               this.activity.finish();
                            }
                }
                super.onBackPressed();
        }

第二种:利用计算时间差实现 (个人觉得这种方式较为简单,而且不容易发生异常,代码较为安全)

     private long exitTime = 0;
        public void ExitApp()
        {
                if ((System.currentTimeMillis() - exitTime) > 2000)
                {
                        Toast.makeText(this.activity, "再按一次退出程序", Toast.LENGTH_SHORT).show();
                        exitTime = System.currentTimeMillis();
                } else
                {
                        this.activity.finish();
                }
        }
 
时间: 2024-08-07 04:31:47

Android双击返回键退出Activity的两种方法的相关文章

Android双击返回键退出Activity的方法

第一种:利用线程延时实现: private int mBackKeyPressedTimes = 0; @Override public void onBackPressed() { if (mBackKeyPressedTimes == 0) { Toast.makeText(this, "再按一次退出程序 ", Toast.LENGTH_SHORT).show(); mBackKeyPressedTimes = 1; new Thread() { @Override public

Android HashMap按照键值排序的两种方法

有如下一个 Map 对象: HashMap<Integer, String> map = new HashMap<Integer, String>(); map.put(3,"A"); map.put(2,"B"); map.put(1,"C"); 键值排序第一种方法: Object[] key = map.keySet().toArray(); Arrays.sort(key); for(int i = 0; i<

Android 双击返回键退出应用

今天做应用的双击退出效果,使用了网上建议的方法,但是每次都是点击一次就退出了,所以就没有用大家的方法,下面把自己的方法写出来,做一下记录.代码如下: /** 双击退出程序 */ private long mExitTime; @Override public void onBackPressed() { // TODO Auto-generated method stub // super.onBackPressed(); if ((System.currentTimeMillis() - mE

Android技术23:Android使用返回键退出实现

Android中通过双击返回键退出应用 在Android应用程序,经常可以通过双击返回键退出应用程序,例如QQ空间.下面将通过代码演示该过程. 1.设置退出标志符号 boolean isExist=false;默认为fasle 2.覆写onKeyDown()方法 监听Back键,当keyCode==KeyEvent.KEYCODE_BACK,则执行将isExist设置为ture,当第二次按back键时,应用程序退出,但两次时间间隔需要在一定时间内. 1 @Override 2 public bo

app点击返回键不退出,双击返回键退出

直接代码 // 按返回键的时候返回上一页面不退出,goBack()表示返回webView的上一页面 public boolean onKeyDown(int keyCoder, KeyEvent event) { if(!webView1.canGoBack() ){ exit(); return false; } if ( keyCoder == KeyEvent.KEYCODE_BACK) { webView1.goBack(); exit(); return false; } else{

实现对多维数组按照某个键值排序的两种方法(array_multisort和array_sort)

实现对多维数组按照某个键值排序的两种解决方法(array_multisort和array_sort): 第一种:array_multisort()函数对多个数组或多维数组进行排序. //对数组$hotcat按照count键值大小降序进行排序: $hotcat =array( array('1501'=>array('catid'=>'1546','catname'=>'续梦PHP 一级','count'=>'588')), array('1501'=>array('catid

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

在开发应用程序的时候,有一种功能是非常常用到的,那就是迅速双击返回按钮,然后实现退出Activity的功能.本人在网上看了很多资料代码,总结起来,主要有两种比较好的方式.一种是开线程延时执行,一种是记录按键时间计算时间差实现.现在跟大家分享一下,代码如下,希望对大家有帮助: 第一种:利用线程延时实现: private int mBackKeyPressedTimes = 0; @Override public void onBackPressed() { if (mBackKeyPressedT

android双击返回键退出程序的实现

/** * 菜单.返回键响应 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode == KeyEvent.KEYCODE_BACK) { exitBy2Click(); //调用双击退出函数 } return false; } /** * 双击退出函数 */ private static Boolean isExit =

android双击返回键退出程序

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode == KeyEvent.KEYCODE_BACK) { ExitClick(); } return false; } private static Boolean isExit = false; private void ExitClick() { Timer tExit =