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

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值