我正在从服务启动活动,并希望它显示在最近的应用列表中。
但是,如果我退出应用程序,我希望从最近的应用程序列表中删除活动(例如,在活动的UI上按下调用finish()的按钮)。
使用android:excludeFromRecents="true"
从最近的应用列表中排除活动并未向我提供我需要的初始活动行为,即最近的应用列表中显示的活动。
这可能吗?
答案 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。您将不得不考虑并尝试在用户在您的堆栈中移动时会发生什么,以及是否会使您的应用重新出现在最近的应用中。