• 点击两次系统返回键实现退出应用


    实现应用中不可缺少的事件,两次点击返回键实现退出应用,这里写了两种方法,都很简单,先开始方法1:

    先定义一个两次点击返回键的间隔时间

    //第一次点击与第二次点击的间隔时间
    private long exitTime;
    

     然后实现点击返回键的事件

    @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
                exit();
                return true;
            }
            return super.onKeyDown(keyCode, event);
        }
    
        private void exit(){
            if((System.currentTimeMillis() - exitTime) > 2000){
                Toast.makeText(this, "再次点击退出应用", Toast.LENGTH_SHORT).show();
                exitTime = System.currentTimeMillis();
            }else{
                finish();
                System.exit(0);
            }
        }
    

    接下来实现方法2,通过Handler延时发送更改状态消息达到退出应用:

     1 //定义一个判断是否要退出的变量
     2     private boolean isExit = false;
     3 
     4     Handler handler = new Handler(){
     5         @Override
     6         public void handleMessage(@NonNull Message msg) {
     7             super.handleMessage(msg);
     8             isExit = false;
     9         }
    10     };

    然后实现点击系统返回键的事件(注意方法exit中的判断是"!isExit"):

     1 @Override
     2     public boolean onKeyDown(int keyCode, KeyEvent event) {
     3         if(keyCode == KeyEvent.KEYCODE_BACK){
     4             exit();
     5             return false;
     6         }
     7         return super.onKeyDown(keyCode, event);
     8     }
     9 
    10     private void exit(){
    11         if(!isExit){
    12             isExit = true;
    13             Toast.makeText(this, "再次点击退出应用", Toast.LENGTH_SHORT).show();
    14             //通过Handler的延迟发送更改状态消息
    15             handler.sendEmptyMessageDelayed(0,2000);
    16         }else{
    17             finish();
    18             System.exit(0);
    19         }
    20     }
  • 相关阅读:
    soj#547 bzoj5046 分糖果游戏
    soj#551 loj#2833 帐篷
    nb哒LCA
    soj#532 set p3175
    p4042 [AHOI2014/JSOI2014]骑士游戏
    p1501 [国家集训队]Tree II
    908G New Year and Original Order
    908D New Year and Arbitrary Arrangement
    EZOJ #258
    EZOJ #257
  • 原文地址:https://www.cnblogs.com/Mr-Deng/p/11655038.html
Copyright © 2020-2023  润新知