介绍:
在各家app的退出机制中,一般如三种退出机制:退回桌面(实际并没有退出),弹出退出确认框,连续两次返回键退出。
实现方案:
1.退回桌面@Override public void onBackPressed() {
goBackToDesktop();
} /**
* 用户在主界面,按返回键直接返回桌面,而不退出
*/
private void goBackToDesktop() {
Intent home = new Intent(Intent.ACTION_MAIN);
home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
home.addCategory(Intent.CATEGORY_HOME);
startActivity(home);
}
image.gif
2.弹出退出确认框public void onBackPressed() {
showExitConfirmDialog();
} /**
* 用户在主界面按返回键,会弹出退出确认框
*/
private void showExitConfirmDialog() { new AlertDialog.Builder(this)
.setTitle("确认退出")
.setPositiveButton("确认", new DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setNegativeButton("取消", null)
.show();
}
image.gif
3.连续两次返回键退出private long exitTime = 0;
public void onBackPressed() {
doubleBackQuit();
} /**
* 连续按两次返回键,退出应用
*/
private void doubleBackQuit()
{ if (System.currentTimeMillis() - exitTime > 2000) {
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
}
作者:程序园中猿
链接:https://www.jianshu.com/p/366fc6de7101