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上本人菜鸟一枚,不喜勿喷

  • 相关阅读:
    java面试第八天
    java面试第七天
    java面试第六天
    java面试第五天
    java面试第四天
    SpringMVC导出Excel
    75. Autorelease机制及释放时机
    关于 SQLNET.AUTHENTICATION_SERVICES 验证方式的说明
    硬件十万个为什么——运放篇(五)PCB设计技巧
    eclipse到Android Studio的项目迁移
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8847772.html
Copyright © 2011-2022 走看看