您的位置:首页 > 其它

欢迎使用CSDN-markdown编辑器

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

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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  小方法