• 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 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();
                    }

            }

    第三种方法

    1. /** 
    2.  * 菜单、返回键响应 
    3.  */  
    4. @Override  
    5. public boolean onKeyDown(int keyCode, KeyEvent event) {  
    6.     // TODO Auto-generated method stub  
    7.     if(keyCode == KeyEvent.KEYCODE_BACK)  
    8.        {    
    9.            exitBy2Click();      //调用双击退出函数  
    10.        }  
    11.     return false;  
    12. }  
    13. /** 
    14.  * 双击退出函数 
    15.  */  
    16. private static Boolean isExit = false;  
    17.   
    18. private void exitBy2Click() {  
    19.     Timer tExit = null;  
    20.     if (isExit == false) {  
    21.         isExit = true; // 准备退出  
    22.         Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();  
    23.         tExit = new Timer();  
    24.         tExit.schedule(new TimerTask() {  
    25.             @Override  
    26.             public void run() {  
    27.                 isExit = false; // 取消退出  
    28.             }  
    29.         }, 2000); // 如果2秒钟内没有按下返回键,则启动定时器取消掉刚才执行的任务  
    30.   
    31.     } else {  
    32.         finish();  
    33.         System.exit(0);  
    34.     }  
    35. }  
  • 相关阅读:
    regsvr32 错误解决方案
    cefsharp解决闪烁
    WPF使用cefsharp 下载地址
    Winform下CefSharp的引用、配置、实例与报错排除(源码)
    cefSharp在XP下使得程序崩溃记录
    mvc3在window 7 iis7下以及 xp iis 5.1下的部署 ,asp.net MVC3无法打开项目文件E:/我们的项目/Project/HeatingMIS.Web/HeatingMIS.Web.csproj”。此安装不支持该项目类型。
    顺序程序设计
    你对linux了解多少,Linux 系统结构详解!
    算术运算符和算术表达式(优先级,结合性等)
    离散化和面元划分(可以理解为划分段)
  • 原文地址:https://www.cnblogs.com/cmblogs/p/4390891.html
Copyright © 2020-2023  润新知