Android中再按一次退出效果的简单实现

  在软件退出时,为了友好的提示用户是否真的想退出程序,在PC机上我们往往是采用弹出messagebox的方法,虽然安卓中也有类似的控件,但是使用起来并没有那么的方便。现在大多数程序设计的提示方式往往就是“再按一次退出”这样会增加用户的体验感。

   我们实现思路就是,在程序中定义一个变量来表示反应时间,即用户在什么时间范围内按下返回键才会退出。需要定义一个记录上次按下返回键时间的变量,这样通过在OnKeyDown(),这个函数中来进行判断就可以实现我们的功能。具体代码如下:

package com.example.backtest;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {
	private static long currenttime=0;//获取当前时间
	private long touchtime=2000;//反映时间
	private long lasttime=0;//上次按键时间
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub
		if(keyCode==KeyEvent.KEYCODE_BACK)
		{
			currenttime=System.currentTimeMillis();//获取当前时间
			if(currenttime-lasttime>=touchtime)
			{
				Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
				lasttime=currenttime;//将当前时间记录为上次按键时间
			}
			else {
				finish();//如果小于时间间隔说明连续按键,希望退出
			}
		}
	//	return super.onKeyDown(keyCode, event); 
		return true;//需要返回当前的按键信息,如返回super,将直接退出不会有按两次退出效果
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值