如何在完成时从最近的应用列表中删除活动?

时间:2014-02-19 09:07:49

标签: android android-intent

我正在从服务启动活动,并希望它显示在最近的应用列表中。

但是,如果我退出应用程序,我希望从最近的应用程序列表中删除活动(例如,在活动的UI上按下调用finish()的按钮)。

使用android:excludeFromRecents="true"从最近的应用列表中排除活动并未向我提供我需要的初始活动行为,即最近的应用列表中显示的活动。

这可能吗?

3 个答案:

答案 0 :(得分:14)

使用

android:excludeFromRecents="true"

清单文件中的活动

android:excludeFromRecents

  

是否应排除此活动启动的任务   从最近使用的应用程序列表(“最近的应用程序”)。那是,   当此活动是新任务的根活动时,此属性   确定任务是否不应出现在最近的列表中   应用。如果任务应从列表中排除,则设置为“true”;组   “假”如果应该包括在内。默认值为“false”。

答案 1 :(得分:2)

对于api> 21,您可以尝试使用finishAndRemoveTask()代替finish()

答案 2 :(得分:0)

是的,通常当您想要在启动时为Activity提供特殊属性时,您需要为Intent提供特殊标志。在这种情况下FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS

更新:

如果您需要隐藏当前已在运行的活动,您可以将此标志与FLAG_ACTIVITY_CLEAR_TOP结合使用,后者会将新的Intent发送到现有的Activity。您将不得不考虑并尝试在用户在您的堆栈中移动时会发生什么,以及是否会使您的应用重新出现在最近的应用中。

source