Android 双击返回键退出

Android 双击退出程序在开发中经常用到,其通过监听返回键动作来触发相应的行为。

具体思路:

Activity中监听按键行为(onKeyDown,onKeyUp),再通过两次点击时时间差来判断用户是否连续点击退出按钮,进而执行相应的操作。

onKeyUp

//记录用户首次点击返回键的时间
private long firstTime=0;

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    switch (keyCode){
        case KeyEvent.KEYCODE_BACK:
            long secondTime=System.currentTimeMillis();
            if(secondTime-firstTime>2000){
                Toast.makeText(MainActivity.this,"再按一次退出程序--->onKeyUp",Toast.LENGTH_SHORT).show();
                firstTime=secondTime;
                return true;
            }else{
                System.exit(0);
            }
            break;
    }
    return super.onKeyUp(keyCode, event);
}

onKeyDown

//记录用户首次点击返回键的时间
private long firstTime=0;

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode==KeyEvent.KEYCODE_BACK && event.getAction()==KeyEvent.ACTION_DOWN){
        if (System.currentTimeMillis()-firstTime>2000){
            Toast.makeText(MainActivity.this,"再按一次退出程序--->onKeyDown",Toast.LENGTH_SHORT).show();
            firstTime=System.currentTimeMillis();
        }else{
            finish();
            System.exit(0);
        }
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

你可能感兴趣的:(Android 双击返回键退出)