zoukankan      html  css  js  c++  java
  • Android笔记--两种双击退出程序的方法

    首先通过onKeyDown获取当前是否是BACK键。如果是进行下一步。

    两种方法其中一种是通过对连续点击back键之间的时间进行判断是否是要退出,另一种是设置一个状态值,通过改变状态值来判断是否是要退出。

    1.

     1     private  long exitTime=0;//根据连续点击之间时间判断 是否退出
     2 
     3     @Override
     4     protected void onCreate(Bundle savedInstanceState) {
     5         super.onCreate(savedInstanceState);
     6         setContentView(R.layout.activity_main);
     7 
     8     }
     9 
    10     @Override
    11     public boolean onKeyDown(int keyCode, KeyEvent event) {
    12 
    13         if (keyCode==KeyEvent.KEYCODE_BACK){
    14             exit();
    15             return false;
    16         }
    17         return super.onKeyDown(keyCode, event);
    18     }
    19     /*
    20     根据点击时间判断
    21     */
    22 
    23     private void exit(){
    24         if (System.currentTimeMillis()-exitTime>2000){
    25             Toast.makeText(getApplicationContext(),"再点击一次退出",Toast.LENGTH_SHORT).show();
    26             exitTime=System.currentTimeMillis();
    27         }else {
    28             finish();
    29             System.exit(0);
    30         }
    31     }

    2.通过handler延迟发送一条信息来改变状态值。

        private static boolean isExit=false;//根据标识判断  是否退出
    
        Handler handler=new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                isExit=false;
            }
        };
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
        }
    
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
    
            if (keyCode==KeyEvent.KEYCODE_BACK){
                exit();
                return false;
            }
            return super.onKeyDown(keyCode, event);
        }
    
    
        /*
          * 1.定义一个标识是否突出
          * */
        private void exit(){
            if (isExit){
                isExit=true;
                Toast.makeText(getApplicationContext(),"再点击一次退出",Toast.LENGTH_SHORT).show();
                //利用handler延迟发送退出状态
                handler.sendEmptyMessageDelayed(0,2000);
            }else {
                finish();
                System.exit(0);
            }
        }
  • 相关阅读:
    03Qt信号与槽(2)
    01Qt中的隐式共享
    10GNU C语言函数调用
    09GNU C语言程序编译
    第一本C语言笔记(下)
    07控制器和控制卡(3)
    06控制器和控制卡(2)
    集合
    linux指令(目录类操作指令)
    面向对象三大特征
  • 原文地址:https://www.cnblogs.com/yeshuwei/p/5575522.html
Copyright © 2011-2022 走看看