我试图在触摸后退按钮时退出我的应用程序。我使用了通常的代码,但它只从屏幕上取出应用程序,当我点击右下方的方框(也告诉我它叫什么)我仍然可以看到运行我要删除的背景的应用程序它完全来自系统。 我试过他们所有的完成();和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();
}
答案 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);
}
这对我有用,我也希望它对你有用。