退出android应用程序

yas*_*hhy 3 android android-activity

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

并使用此方法

moveTaskToBack(true);
Run Code Online (Sandbox Code Playgroud)

我正在开发一个应用程序,在我需要退出它的最后一个活动中,我使用了退出应用程序的上述方法,问题是它是否存在,只有活动和应用程序在后台运行(在任务管理器中看到).每当我再次加载应用程序时,它都从我退出它的位置开始(最后一个活动).

是否有任何代码完全退出它并删除表单背景(任务管理器).

提前致谢.

Dav*_*ser 5

要退出应用程序,请以这种方式返回到根活动(启动程序启动的第一个活动):

Intent intent = new Intent(this, MyRootActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addExtra("exit", "true");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

这将清除任务堆栈到根活动,然后使用此意图再次启动根活动.

在你的根活动中,onCreate()你需要根据意图中的额外内容确定退出,如下所示:

Intent intent = getIntent();
if (intent.hasExtra("exit")) {
    // User wants to exit
    finish();
}
Run Code Online (Sandbox Code Playgroud)

您还要说明从任务管理器中删除您的应用程序.如果您指的是"最近的应用程序列表",这不是"正在运行的应用程序"的列表,它是用户最近使用的应用程序列表.仅仅因为您的应用程序显示并不意味着它正在运行.

如果您确实希望自己的应用不会显示在"最近的应用列表"中,只需将其添加到根活动的清单条目中:

android:excludeFromRecents="true"
Run Code Online (Sandbox Code Playgroud)