Android笔记--两种双击退出程序的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
        }
    }

 

以上是关于Android笔记--两种双击退出程序的方法的主要内容,如果未能解决你的问题,请参考以下文章

两种unity双击事件

Android Native APP开发笔记:双击返回键退出应用&单击返回键返回桌面

Android 双击退出程序实现(有侧滑界面)

Android控制双击返回按钮退出程序的代码

Android--双击退出程序

android 双击返回按钮退出程序。