介绍:
在各家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
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
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();
}
}
网友评论