Android 再按一次退出程序

抽空研究了一下"再按一次退出程序"的实现方式,直接上代码(请自动忽略无关代码)。

第一种(Handler+标志位)

    private boolean isExit;
    private Handler handler;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        handler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                isExit = false;
            }
        };
    }
@Override   
public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ if(!isExit){ isExit = true; handler.sendEmptyMessageDelayed(0, 1500); Toast.makeText(this, "再按一次退出程序", 1000).show(); return false; }else{ finish(); } } return super.onKeyDown(keyCode, event); }

 

第二种(记录点击的时间)

    private long exitTimeMillis = System.currentTimeMillis();
    @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){
            long currentTime = System.currentTimeMillis();
            if(currentTime-exitTimeMillis==0||currentTime-exitTimeMillis>1500){
                exitTimeMillis = System.currentTimeMillis();
                Toast.makeText(this, "再按一次退出程序", 1000).show();
                return false;
            }else{
                finish();
            }
        }
        return super.onKeyDown(keyCode, event);
    }    

 

更多方式,敬请分享...

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。