现在市场上很多手机是把back键,home键设置在手机屏幕中,这样就会致使用户在使用我们的软件时误点到back键而退出我们的整个程序,我们用户体验度会不好。
然而我们开发的时候就把首页面设置成需要点击两次back键才能退出整个程序,这样子的话我们用户体验起来才会好。
话不多讲,直接上代码
第一种是通过我们的 handler传递消息来实现的
//点击两次back键退出
private static boolean isexit = false;
private static Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
isexit = false;}};
//onkeydown 对手机的back键进行监听
@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 (!isexit) {
isexit = true;
Toast.makeText(getApplicationContext(), "再按一次后退键退出程序", Toast.LENGTH_SHORT).show();
// 利用handler延迟发送更改状态信息
mHandler.sendEmptyMessageDelayed(0, 2000);
} else {
Log.e("Mainactivity", "exit application");
this.finish();
}}
第二种是通过我们 "计数" 的方式来实现的:
private long clickTime = 0; //记录第一次点击的时间
@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 {
Log.e(TAG, "exit application");
this.finish();}}
见笑了!
Just do it!! lzl
如有不懂欢迎致件:zhilin_comeon@163.com