-1

我在 onCreate 方法的 MainActivity 类中显示了一个带有 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我​​将再次启动 MainActivity 类以收集工作正常的电子邮件。问题是

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

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

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

编辑

通过以下建议,我已将意图起始代码编辑到下面并且它有效

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);
4

4 回答 4

1

您可以使用意图进入主屏幕

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);
于 2015-03-19T10:21:44.853 回答
0

您确定您的活动已重新开放吗?也许它只是从未关闭过。打开第二个活动并不自动意味着当前活动已关闭。你将不得不这样做finish()

于 2015-03-19T10:21:57.957 回答
0

尝试... finish();

退出您的活动。或者你也可以通过使用杀死你的应用程序

System.exit(0)

或者

android.os.Process.killProcess(android.os.Process.myPid());
于 2015-03-19T10:21:19.013 回答
0

在您的按钮事件中添加:

getActivity().finish();
System.exit(0);
于 2015-03-19T10:21:34.220 回答