Android应用程序退出后退按钮

时间:2016-10-04 18:33:10

标签: android android-studio

我试图在触摸后退按钮时退出我的应用程序。我使用了通常的代码,但它只从屏幕上取出应用程序,当我点击右下方的方框(也告诉我它叫什么)我仍然可以看到运行我要删除的背景的应用程序它完全来自系统。 我试过他们所有的完成();和System.exit(0);他们只是将应用程序从前场传递到背景。我想将它从系统中完全删除。

以下我正在使用的代码。

@Override
public void onBackPressed() {

        new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
                .setMessage("Are you sure?")
                .setPositiveButton("yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        Intent intent = new Intent(Intent.ACTION_MAIN);
                        intent.addCategory(Intent.CATEGORY_HOME);
                        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        startActivity(intent);
                        finish();
                        System.exit(0);
                    }
                }).setNegativeButton("no", null).show();

    }

2 个答案:

答案 0 :(得分:4)

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);将清除之前的活动。使用此功能,无需finish()电话。

System.exit(0);用于java,而不是android,所以不要再使用它了。使用片段中的finish()getActivity().finish()来关闭当前活动。

更新

如果你想杀死应用程序以便在后台不再运行,你需要做这样的事情

ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE); am.killBackgroundProcesses(packageName);

packagename是您的应用包。您需要提供权限<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />。我认为需要在M.上试一试。

答案 1 :(得分:2)

如果你想从主要活动中退出应用程序,你可以写:

finish();

或者要从其他活动退出应用,您应该在其他活动中执行此操作:

    //in other activity onBackPressed()     
    Intent intent = new Intent(OtherActivity.this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("EXIT", true);
    startActivity(intent);

并在onCreate()中为MainActivity写入

 if (getIntent().getBooleanExtra("EXIT", false)) {
        finish();
        System.exit(0);
    }

这对我有用,我也希望它对你有用。