【问题标题】:How to kill the app in android by pressing a button如何通过按下按钮杀死android中的应用程序
【发布时间】:2015-03-19 10:13:06
【问题描述】:

我在 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);

【问题讨论】:

    标签: android kill-process ondestroy onbackpressed


    【解决方案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);
    

    【讨论】:

      【解决方案2】:

      在您的按钮事件中添加:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          试试... finish();

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多