如何通过按下按钮杀死Android中的应用程序

时间:2015-03-19 10:13:07

标签: android kill-process ondestroy onbackpressed

我正在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按钮,如果用户点击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 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

...尝试     finish();

退出您的活动。或者你也可以使用

杀死你的应用程序
System.exit(0)

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

答案 2 :(得分:0)

在您的按钮事件中添加以下内容:

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

答案 3 :(得分:0)

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

执行此操作