1.连按两次返回键退出:
// 双击返回事件
long touchTime = 0;
long waitTime = 2000;
public void onBackPressed() {
long currentTime = System.currentTimeMillis();
if ((currentTime - touchTime) >= waitTime) {
Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
touchTime = currentTime;
} else {
finish();
}
}
2.退出对话框:
//判断是否单击返回键
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == event.KEYCODE_BACK) {
Log.e("TAG", "返回");
}
return true;
}
---------------------------------------------------------------------------------------------------------------------------------
/**
* 退出对话框
*/
private void quitDialog() {
new AlertDialog.Builder(this)
.setTitle("提醒")
.setIcon(null)
.setCancelable(false)
.setMessage("是否退出程序")
.setPositiveButton("退出",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
MainActivity.this.finish();
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
dialog.dismiss();
}
}).create().show();
}
双击退出
------------------------------------------------------------------------------
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == event.KEYCODE_BACK) {
exit1();
}
return true;
}
public long time = 0;
public void exit() {
if (System.currentTimeMillis() - time > 2000) {
Toast_show("再点击一次退出");
time = System.currentTimeMillis();
} else {
Intent intent = new Intent();
intent.setAction("broad");
sendBroadcast(intent);
}
}
private boolean is = false;
public void exit1() {
if (!is) {
// 定时器
is = true;
Toast_show("再点击一次退出");
new Timer().schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
is = false;
}
}, 2000);
} else {
Intent intent = new Intent();
intent.setAction("broad");
sendBroadcast(intent);
}
}