正文
话不多说,实现代码+详细注释如下:
private long mExitTime = 0;
//定义并初始化长整型变量mExitTime为下面的记录按下时间做准备
//下来重写返回监听方法
@Override
public void onBackPressed(){
//这里面便是返回方法具体实现的内容
if( System.currentTimeMillis() - mExitTime > 2000){
//判断当前按下返回键的时间和你定义的mExitTime的差是否大于2秒,如果大于则执行里面的程序 ( 注:1000 = 1秒 以此类推 )
Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
//弹窗提示,你也可以不写,当然了,写了更好些。这里唯一需要变的就是把MainActivity改成你的Activity name。
mExitTime = System.currentTimeMillis();
//重点讲这个:把当前按下返回键的时间赋给mExitTime,这样的话你在两秒内再次按返回时判断将不会执行这里的代码,而是去执行else里的了 ( 这里涉及java基础,慢慢理解,如果不会可以问我 )
}else{
finish(); //关闭当前Activity
//延迟销毁程序,提升使用体验
try {
Thread.sleep(1000); //延迟一秒 1000 ---> 一秒
System.exit(0); //0代表正常退出,其他非0都为非正常退出
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
补充
- Java 基础之 if 判断
格式:
if (判断条件){
//条件为真时执行这里
} else {
//条件为假时执行这里
}
实例:
//下面代码想亲手试试的,去 main() 方法里敲敲试试。
int a = 1;
int b = 0;
if ( a > b ){
System.out.println("a大于b");
} else {
System.out.println("a小于b");
}
//这里很明显 a为1 , b为0 程序会输出 "a大于b",故类比到我们上面的返回监听中,你就很好理解了。
好了,内容结束。喜欢的点赞加关注,溜了溜了。