使用System类提供的静态方法currentTimeMillis()实现:
private long mExitTime;//存储触摸返回键的时间
public boolean onKeyDown(int keyCode,KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK ){
if ((System.currentTimeMillis() - mExitTime) > 2000) { //再次触摸返回键的时间减去上次触摸返回键的时间,小于2000ms则退出程序
Toast.makeText(getAppcationContext(),"再按一次退出程序",Toast.LENGTH_SHORT).show();
}else{
finish();
System.exit(0);
}
}
}
使用计时器Timer类实现:
<pre name="code" class="java">private boolean isExit = false;
private boolean hasTask = false;
private Timer timer = new Timer();
private TimerTask task ;
public void onStart(){
super.onStart();
task = getTask();
}
/**
* 获取计时器任务
* @return new TimerTask()
*/
private TimerTask getTask(){
return new TimerTask(){
@Override
public void run(){
isExit = false;
hasTast = true;
}
};
}
@Override
public boolean onKeyDown (int KeyCode,KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK){
if(!isExit){
isExit = true;
Toast.makeText(getApplicationContext(),"再按一次退出程序",Toast.LENGTH_SHORT).show();
if (null == task){
task = getTask();//新建一个任务
timer.schedule(task,2000);
}
task.cancel();//将原先的任务从执行队列中移除
}else{
finish();
System.exit(0);
}
}
}
注:本人初学anroid不久,有什么不足之处。希望大神们予以指正!