gpt4 book ai didi

Android:按下后退按钮时退出应用程序

转载 作者:IT王子 更新时间:2023-10-29 00:07:07 26 4
gpt4 key购买 nike

在我的应用程序中,我想在按下返回按钮时退出应用程序,这是我的代码:

@Override
public void onBackPressed() {
new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
.setMessage("Are you sure you want to exit?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
}).setNegativeButton("No", null).show();
}

它工作正常,但是当我退出应用程序时,它并没有完全退出并显示带有我的应用程序 Logo 的空白页面,当我再次按下应用程序退出按钮时,我该如何修复它???

编辑:

我使用此代码而不是上面的代码,但我的应用程序完全退出,但我希望它在后台运行并且不完全退出,我该怎么做?

@Override
public void onBackPressed() {
new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
.setMessage("Are you sure?")
.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
}).setNegativeButton("no", null).show();
}

最佳答案

当您按下返回然后完成当前 Activity (例如 A)时,您会看到一个带有应用 Logo 的空白 Activity (例如 B),这仅表示完成 A 后显示的 Activity B 仍在后台堆栈中,并且 Activity A 是从 Activity B 开始的,因此在 Activity 中,您应该使用标志作为启动 Activity A

Intent launchNextActivity;
launchNextActivity = new Intent(B.class, A.class);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(launchNextActivity);

现在您的 Activity A 在堆栈顶部,而您的应用程序的其他 Activity 在后台堆栈中没有。

现在在你想要实现 onBackPressed 关闭应用程序的 Activity A 中,你可以做这样的事情,

private Boolean exit = false;
@Override
public void onBackPressed() {
if (exit) {
finish(); // finish activity
} else {
Toast.makeText(this, "Press Back again to Exit.",
Toast.LENGTH_SHORT).show();
exit = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
exit = false;
}
}, 3 * 1000);

}

}

这里的Handler处理意外的回压,它只是简单的显示一个Toast,如果3秒内再有回压,就关闭应用。

关于Android:按下后退按钮时退出应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20591959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com