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);
            }
        }
  • 相关阅读:
    基于摸板匹配的目標跟蹤算法
    spoj 2713 Can you answer these queries IV
    zoj 3633 Alice's present
    hdu 3642 Get The Treasury
    poj 1195 Mobile phones
    poj 2760 End of Windless Days
    zoj 3540 Adding New Machine
    spoj 1716 Can you answer these queries III
    spoj 1043 Can you answer these queries I
    spoj 2916 Can you answer these queries V
  • 原文地址:https://www.cnblogs.com/yeshuwei/p/5575522.html
Copyright © 2011-2022 走看看