介绍:
在各家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