欢迎使用CSDN-markdown编辑器

来源:互联网 发布:vb两个窗体传递数值 编辑:程序博客网 时间:2024/04/29 06:00

有时候害怕我们误触返回键而退出程序,因此我们可以在按返回键时添加几行代码.让其两次退出才会关闭程序,给客户更好的体验.

1.当我们按手机的返回键时,其实页面首先触发的是onBackPressed()方法;
所以我们在其内部设置一点的程序:`

public void onBackPressed(){
count++;
if(count == 1){
Toast.makeText(this, “再次点击退出程序”Toast.LENGTH_SHORT).show();
}else if(count == 2){
super.onBackPressed();
//finish();
}
}
`
2.上面点击一次,”count就会加一”,第一次时会toast,单击第二次时会执行退出;但是我们想要的效果是toast之后三秒内再点击返回键才认为是退出程序:
这里我们就运用线程去设置一个方法:借用thread可以让线程休眠的特性,让其休眠时间为三秒,如果超过这个时间,我们就让count=0,重新开始计数;如果三秒之内再次启动onBackPressed()方法,thread语句还未执行,count就会判定为2,退出程序;
Thread thread = new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
count = 0;
}
});
thread.start();

完整代码:

private int count = 0;
@Override
public void onBackPressed(){
count++;
if(count == 1){
Toast.makeText(this, “再次点击退出程序”, Toast.LENGTH_SHORT).show();
}else if(count == 2){
super.onBackPressed();
//finish();
}
Thread thread = new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
count = 0;
}
});
thread.start();
}

0 0