如何通过按下按钮终止 android 中的应用程序

How to kill the app in android by pressing a button

我在 onCreate 方法中的 MainActivity class 中显示了一个带有 EditText 字段、取消和确定按钮的对话框屏幕,如下所示

AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("User Login");
alert.setMessage("Enter your email address");
final EditText input = new EditText(this);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                String email = input.getText().toString().trim();
                if (email == null || email.isEmpty())
                {
                    AlertDialog.Builder alert_email = new AlertDialog.Builder(MainActivity.this);
                    alert_email.setTitle("Email Not Entered");
                    alert_email.setMessage("Please enter email.");
                    alert_email.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            Intent start_mainactivity = new Intent(MainActivity.this, MainActivity.class);
                            startActivity(start_mainactivity);
                        }
                    });
                    alert_email.show();
                }
                else
                {
                    doSomething();
                }
            }
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            finish();
            System.exit(0);

        }

所以从上面的代码我试图做的是显示一个 EditText 视图字段来收集用户的电子邮件,如果用户输入电子邮件,代码将继续必要的处理,但是如果用户单击 OK 没有向 EditText 输入数据,只显示另一个对话框,上面写着 "Email not Entered" 和一个 OK 按钮,这里如果用户单击 OK 然后我再次启动 MainActivity class 来收集电子邮件,它工作正常。问题是

当首先启动主 activity 并单击 Cancel 按钮时,应用程序将退出到主屏幕,该屏幕按预期工作

当用户单击 OK 按钮而未输入数据时,主要 activity class 通过显示电子邮件、取消和确定按钮启动,现在当我们单击 Cancel 按钮在此阶段应用程序无法退出到主屏幕,而是再次打开主 activity 屏幕。

那么当用户在任何阶段点击Cancel按钮时如何直接终止进程

编辑

根据以下建议,我已将 intent 起始代码编辑为以下并且有效

Intent start_mainactivity = new Intent(MainActivity.this, MainActivity.class);


start_mainactivity.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
start_mainactivity.putExtra("EXIT", true);
startActivity(start_mainactivity);

试试... finish();

退出 activity。或者您也可以使用

终止您的应用
System.exit(0)

android.os.Process.killProcess(android.os.Process.myPid());

在您的按钮事件中添加:

getActivity().finish();
System.exit(0);

您可以使用 intent 返回主屏幕

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(startMain);

您确定您的 activity 已重新打开吗?也许它只是从未关闭过。打开第二个 activity 并不自动意味着关闭当前 activity。您必须使用 finish()