利用消息处理类Handler
首先定义两个变量
private Handler handler;
private boolean iskill=false;
在onCreate()方法中添加代码
handler=new Handler()
{
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if(msg.what==0x101)
{
iskill=false;
}
super.handleMessage(msg);
}
};
重写onKeyDown()方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK)
{
if(iskill)
{
//退出
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
System.exit(0);
}
else
{
iskill=true;
Toast.makeText(this,"再按一次退出程序",Toast.LENGTH_SHORT).show();
handler.sendEmptyMessageDelayed(0x101,2000); //延迟2秒发送消息
}
return true;
}
return super.onKeyDown(keyCode, event);
}
LENGTH_SHORT和LENGTH_LONG分别对应2秒和3.5秒
退出代码是退回桌面,并清理上一步的缓存。