2

我正在开发Android应用程序。当我的应用程序正在运行并且我按下手机上的最近应用程序按钮时,将调用 Activity 的onPause()方法。在这个onPause中,我调用了 finish()。所以活动被破坏了。

但它在最近的应用程序列表中仍然可见。

当我从onPause()销毁我的活动时,如何确保它没有列在最近的应用程序列表中。

4

4 回答 4

10

尝试做

<activity android:name=".MainActivity"
        android:excludeFromRecents="true" ...>

在您的 AndroidManifest.xml 的活动声明中。

官方文档中获取更多信息

此活动启动的任务是否应从最近使用的应用程序(“最近的应用程序”)列表中排除。也就是说,当这个activity是一个新任务的根activity时,这个属性决定了这个task是否不应该出现在最近的应用列表中。如果该任务应从列表中排除,则设置为“true”;如果应该包含它,则设置为“false”。默认值为“假”。

当您希望在启动 Activity 时为其具有特殊属性时,您可以向 Intent 提供特殊标志。在这种情况下 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS。

通过链接

于 2016-01-20T12:20:02.307 回答
2

使用 finishAndRemoveTask() 代替 finish() 或 finishAffinity()

于 2020-09-16T16:18:06.173 回答
0

use

finish();

when you move to the next activity then recent activity is finish

于 2020-09-16T16:57:31.207 回答
0

原因可能是因为只有您的活动被破坏,而不是 Application 实例。Android 等待可能是用户再次打开应用程序。要完全终止应用程序,您可以使用上述 API 16 this.finishAffinity()

它将完成当前活动及其下的所有其他活动。正如医生所说

在当前任务中完成此活动以及紧接其下方的所有具有相同亲和力的活动

于 2016-01-20T12:22:18.553 回答