欢迎使用优快云-markdown编辑器

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值