zoukankan      html  css  js  c++  java
  • [转]Android实现点击两次返回键退出

    正好在网上看到了一个,研究了一下,保存下来吧。

    第一步,定义一个变量,用于标识是否退出

    [java] view plaincopy
     
    1. boolean isExit;  

    第二步,重写Activity中onKeyDown方法

    [java] view plaincopy
     
    1. @Override  
    2.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
    3.         if (keyCode == KeyEvent.KEYCODE_BACK) {  
    4.             exit();  
    5.             return false;  
    6.         } else {  
    7.             return super.onKeyDown(keyCode, event);  
    8.         }  
    9.     }  


    第三步,写一个退出方法,名称就是onKeyDown中的exit()

    [java] view plaincopy
     
    1. public void exit(){  
    2.         if (!isExit) {  
    3.             isExit = true;  
    4.             Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();  
    5.             mHandler.sendEmptyMessageDelayed(02000);  
    6.         } else {  
    7.             Intent intent = new Intent(Intent.ACTION_MAIN);  
    8.             intent.addCategory(Intent.CATEGORY_HOME);  
    9.             startActivity(intent);  
    10.             System.exit(0);  
    11.         }  
    12.     }  


    第四步,根据exit()方法中的的消息,写一个Handler

    [java] view plaincopy
     
    1. Handler mHandler = new Handler() {  
    2.   
    3.         @Override  
    4.         public void handleMessage(Message msg) {  
    5.             // TODO Auto-generated method stub  
    6.             super.handleMessage(msg);  
    7.             isExit = false;  
    8.         }  
    9.   
    10.     };  



    实现的基本原理就是,当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。

    在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在Handler中将此值还原成false。

    如果在发送消息间隔的2秒内,再次按了BACK键,则再次执行exit方法,此时isExit的值已为true,则会执行退出的方法

  • 相关阅读:
    Delphi cxGrid –--> RecordIndex out of Range
    局域网共享需要密码
    提高AdoQuery的速度
    string literals may have at most 255 elements
    delphi控件属性大全-详解-简介
    Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值
    FastReport 使用说明
    delphi的取整函数round、trunc、ceil和floor
    cxGrid 速度
    SQL Server 无法在服务器上访问指定的路径或文件解决方法
  • 原文地址:https://www.cnblogs.com/cnwhm/p/3595605.html
Copyright © 2011-2022 走看看