Android点击两次back退出程序的两种方法

来源:互联网 发布:linux网卡优先级 编辑:程序博客网 时间:2024/05/21 04:26

方法一
调用的是sendEmptyMessageDelayed判断两次按back的时间差是否大于两秒,如果大于两秒就对falg赋值false
最后不要忘了移除所有消息,防止内存溢出
handler.removeCallbacksAndMessages(null)

public class MainActivity extends ActionBarActivity {    private boolean falg=false;    Handler handler=new Handler(){        @Override        public void handleMessage(Message msg) {            switch (msg.what) {            case 1:                falg=false;                break;            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    @Override    public boolean onKeyUp(int keyCode, KeyEvent event) {        if(event.getKeyCode()==KeyEvent.KEYCODE_BACK&&!falg){            falg=true;            Toast.makeText(MainActivity.this, "再次按back退出程序", 0).show();            handler.sendEmptyMessageDelayed(1, 2000);            return true;        }        return super.onKeyUp(keyCode, event);    }    @Override    protected void onDestroy() {        // TODO Auto-generated method stub        super.onDestroy();        handler.removeCallbacksAndMessages(null);    }}

方法二 两次按back的时间差

public class Month2_Activity extends ActionBarActivity {          private long clickTime = 0; //记录第一次点击的时间        @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 true;            }            return super.onKeyDown(keyCode, event);        }        private void exit() {            if ((System.currentTimeMillis() - clickTime) > 2000) {                Toast.makeText(getApplicationContext(), "再按一次后退键退出程序",                        Toast.LENGTH_SHORT).show();               clickTime = System.currentTimeMillis();            } else {                this.finish();            }        }    }  
0 0
原创粉丝点击