按两次返回键退出程序

本文详细阐述了如何通过记录点击返回键次数和显示短暂提示信息来实现游戏退出的二次确认机制,有效防止误操作导致的游戏意外退出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	//记录点击返回键次数
	private int clickTime=0;
	//记录toast显示的时间
	private int times=-1;
	private Timer timer=null;
//重写onBackPressd()方法
public void onBackPressed() {
		//按下返回键时点击次数加1
		clickTime=clickTime+1;
		if(clickTime==1&&timer==null){
			Toast.makeText(MainActivity.this, "再按一次退出游戏", Toast.LENGTH_SHORT).show();
			/**
			 * 每隔1秒times+1,两秒时(也就是toast消失的时候)让clicktime=0,timer=-1,
			 * 当toast还在显示的时候再次按下返回键clicktime就会变为2,就会调用onBackPressed()方法销毁程序,
			 */
			timer=new Timer();
			timer.schedule(new TimerTask() {

				@Override
				public void run() {
					times=times+1;
					if(times==2){
						clickTime=0;
						times=-1;
						timer.cancel();
						timer=null;
					}
				}
			}, 0,1000);
		}else if(clickTime==2){
			if(timer!=null){
				timer.cancel();
				timer=null;
				super.onBackPressed();
			}else{
				super.onBackPressed();
			}
		}
	}
}



大神点击事件(来自于android源码--点击多次进入开发者模式)

        long[]mHits=new long[n];
//onClick      
        System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
        mHits[mHits.length-1]= SystemClock.uptimeMillis();
        if (mHits[0]>=(SystemClock.uptimeMillis()-time)){
            super.onBackPressed();
        }
n:点击次数

time:要求多少时间内点击完成


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值