zoukankan      html  css  js  c++  java
  • 【Android】System.exit(0) 退出程序

    许多 Android 应用程序都是连续点击两下返回键时退出程序,代码如下:

    private long exitTime = 0;
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){   
            if((System.currentTimeMillis()-exitTime) > 2000){  
                Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();                                
                exitTime = System.currentTimeMillis();   
            } else {
                finish(); //这行代码可能会有些问题
                System.exit(0);
            }
            return true;   
        }
        return super.onKeyDown(keyCode, event);
    }

    参考链接:Android中的“再按一次返回键退出程序”实现

    此外,有人提到了 Stack Overflow 上的解决方案,有很多,未细看,这里先把链接贴出来:Android: clicking TWICE the back button to exit activity

    前者使用的时候遇到了一些问题:应用程序退出之后又重启了!

    上网查找后发现有说法是:有 Activity 没有 finish.

    果不其然,这里可能是单单一个 finish() 方法不足以 finish 所有的 Activity, 可以写一个方法来实现,代码如下(这里仅供参考):

       private static Stack<Activity> activityStack;
    
      public void finishAllActivity() {
            for (int i = 0, size = activityStack.size(); i < size; i++) {
                if (null != activityStack.get(i)) {
                    activityStack.get(i).finish();
                }
            }
            activityStack.clear();
        }

    这样做之后问题就解决了~

  • 相关阅读:
    下载Spring
    Jsp的静态引入和动态引入
    Jsp代码书写
    Jsp的page指令
    Jsp注释
    Python学习笔记Day04
    sublime
    sublime
    爬虫学习02_数据提取
    爬虫学习01_爬虫基础与requests模块
  • 原文地址:https://www.cnblogs.com/jaxer/p/4974186.html
Copyright © 2011-2022 走看看