现在大多程序都没有点击退出弹出对话框问你是否要退出,我们也要顺应潮流,也要防止用户在使用软件的时候不小心点击到了back键,
所有就设计点击两次back键就直接退出程序。
话不多说 代码贴上
现在市场上很多手机是把back键,home键设置在手机屏幕中,这样就会致使用户在使用我们的软件时误点到back键而退出我们的整个程序,我们用户体验度会不好。
然而我们开发的时候就把首页面设置成需要点击两次back键才能退出整个程序,这样子的话我们用户体验起来才会好。
话不多讲,直接上代码
第一种是通过我们的 handler传递消息来实现的
//点击两次back键退出
private static boolean isexit=false;
private static boolean hastask=false;
Timer timer=new Timer();
TimerTask task=new TimerTask() {
@Override
public void run() {
isexit=false;
hastask=true;
}};
//点击两次才退出界面,方法:onkeyDown
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_BACK){
if(isexit==false){
isexit=true;
Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
if(!hastask){
timer.schedule(task,2000);}
}else{
finish();}}
return false;}
第二种是通过我们 "计数" 的方式来实现的:
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 或加群 570381012