美文网首页
Android实现双击退出应用

Android实现双击退出应用

作者: 从明天起007 | 来源:发表于2017-05-27 06:45 被阅读0次

private boolean flag = true;

private static final intWHAT_RESET_BACK=1;

privateHandlerhandler=newHandler() {

@Override

public voidhandleMessage(Message msg) {

switch(msg.what) {

caseWHAT_RESET_BACK:

flag=true;

break;

     }

   }

};

@Override

public booleanonKeyUp(intkeyCode, KeyEvent event) {

if(keyCode == KeyEvent.KEYCODE_BACK&&flag) {

Toast.makeText(this,"再点击一次,退出应用", Toast.LENGTH_SHORT).show();

flag=false;   //第一次点击进来把flag的值赋为false,第二次点击的时候由于if()里面的条件 不 成立,则直接走最后一步退出

handler.sendEmptyMessageDelayed(WHAT_RESET_BACK,2000);

return true;      //返回true不退出,不走最后一步,所以不退出应用

    }

return super.onKeyUp(keyCode, event);//退出

 }

思路解释:

首先需要在MainActivity里面重写onKeyUp方法:

keyCode == KeyEvent.KEYCODE_BACK && flag  判断是否按了手机上的返回键  flag默认为true

private boolean flag = true;      //声明一个boolean值,默认为true

然后使用Handler发送一个延迟2秒的消息:

//两秒后发送一个消息,如果两秒内点击了两次的话,就直接跳最后一步退出应用,因为第一次进来的时候已经把flag的值设为false

// if()里面的条件不成立,所以直接跳最后一步(return super.onKeyUp(keyCode, event);//退出)

handler.sendEmptyMessageDelayed(WHAT_RESET_BACK,2000);

//如果两秒内没有点击第二次的话,发送消息就执行下面代码

case WHAT_RESET_BACK :

flag=true;       //把值设为恢复为true,两秒后再次点击进来就不会执行  return super.onKeyUp(keyCode, event);,等于又重新认为你是第一次点击

break;

相关文章

网友评论

      本文标题:Android实现双击退出应用

      本文链接:https://www.haomeiwen.com/subject/eefndttx.html