finish() 没有按预期工作

finish() not working as expected

当我创建一个 android 应用程序时,我首先在其中创建了 main activity,然后我添加了 splash activity 以及一个正常的 activity.

所以我的问题是每当我在我的应用程序中点击退出关闭 main activity 和 returns 一个正常的 activity in splash activity. 我在主要 activity.

中的退出按钮上使用 finish();

那么如何退出 到 android 启动器屏幕

的应用程序

我也尝试过使用 Action Main 创建 new intent 但它只是 最小化应用程序 我要关闭它

MainActivity.class

if (id == R.id.exit) {
            AlertDialog.Builder builder = new AlertDialog.Builder(homeActivity.this);
            builder.setMessage("Do You Want To Exit?").setCancelable(false)
                    .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            finish();
                        }
                    }).setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });
            AlertDialog alert = builder.create();
            alert.setIcon(R.drawable.ic_error_outline_black_24dp);
            alert.setTitle("Exit!!");
            alert.show();
      }

您可以设置 android:excludeFromRecents="true"android:noHistory="true" 在你 android Manifest 启动文件 activity.

尝试在从 SplashScreenActivity 启动 MainActivity 时添加标志 "Intent.FLAG_ACTIVITY_CLEAR_TOP",如下所示:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);

SplashActivity 启动 MainAcitivity 时,在意图中设置标志如下,并在 SplashAcitivty

上调用 finish()
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();

在将 splash 导航到 mainActivity 时在 splash 中添加这些东西

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
finish();