zoukankan      html  css  js  c++  java
  • Android两次后退键退出

    转载请注明出处:http://blog.csdn.net/javacattle/article/details/41964045

    仅仅要在 *.Java 文件里加入就可以

    private int back = 0;
    
    //===============back两次退出=====================
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {//必要的改变
       menu.add(0, 2, 2, "退出");
       return super.onCreateOptionsMenu(menu);
      }
     
    
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
       switch (item.getItemId()) {
       case 2:
        Myback();
        break;
       }
       return super.onOptionsItemSelected(item);
      }
    
     
      @Override
      public boolean onKeyDown(int keyCode, KeyEvent event) {//两次back退出
       if (keyCode == KeyEvent.KEYCODE_BACK) {
        back++;
        switch (back) {
        case 1:
         Toast.makeText(MainActivity.this, "再按一次退出",
           Toast.LENGTH_SHORT).show();
         break;
        case 2:
         back = 0;// 初始化back值
         Myback();
         break;
        }
        return true;// 设置成false让back失效 ,true表示 不失效
       } else {
        return super.onKeyDown(keyCode, event);
       }
      }
    
      public void Myback() { // 关闭程序
       MainActivity.this.finish();
       android.os.Process.killProcess(android.os.Process.myPid());// 关闭进程
      }


    //因为网友的提醒(@菜鸟_晧 @貌似掉线)。菜鸟级别的我又又一次改动了代码,而且能够非常好的使用,对于他们的建议表示感谢,改动后的代码:
    private int tDifference = 2000;//等待的时间
    private boolean isExit = false;   //状态
    private Timer mTicker = null;//定义Timer时间器
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {// 两次back退出
    if (keyCode == KeyEvent.KEYCODE_BACK) {
    Myback();
    return true;
    } else {
    return super.onKeyDown(keyCode, event);
    }
    
    }
    
    
    public void Myback() { // 关闭程序
    if(isExit){
    MainActivity.this.finish();
    android.os.Process.killProcess(android.os.Process.myPid());// 关闭进程
    }else{
    Toast.makeText(MainActivity.this, "再按一次退出", Toast.LENGTH_SHORT).show();
    isExit = !isExit;
    if(null == mTicker){
    mTicker = new Timer();
    }
    mTicker.schedule(new TimerTask() {
    @Override
    public void run() {//改变标识
    isExit = false;
    
    }
    },tDifference );
    }
    }
    


    PS:android上本人菜鸟一枚,不喜勿喷

  • 相关阅读:
    LoadRunner如何监控Linux下的系统资源
    shareeverything and sharenothing原理区别
    LoadRunner下如何监控Windows系统资源
    简明 Vim 练级攻略
    自由地使用那10000个Web协议的License进行压力测试
    自己做的西直门桥
    Visual Studio问题解答(不断更新)
    记2012微软编程之美全国挑战赛
    matlab也能创作歌曲
    拈游戏
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8847772.html
Copyright © 2011-2022 走看看