我正在从一个服务启动一个活动,并希望它出现在最近使用的应用列表中。
然而,如果我退出应用程序(例如,按下活动UI上的按钮调用finish()),我希望将该活动从最近使用的应用列表中删除。
使用android:excludeFromRecents="true"
排除活动不会给我所需的初始活动行为,即在最近使用的应用列表中显示活动。
这是否可能?
我正在从一个服务启动一个活动,并希望它出现在最近使用的应用列表中。
然而,如果我退出应用程序(例如,按下活动UI上的按钮调用finish()),我希望将该活动从最近使用的应用列表中删除。
使用android:excludeFromRecents="true"
排除活动不会给我所需的初始活动行为,即在最近使用的应用列表中显示活动。
这是否可能?
使用
android:excludeFromRecents="true"
用于清单文件中的活动
android:excludeFromRecents
该活动启动的任务是否应该从最近使用的应用程序列表("最近应用程序")中排除。也就是说,当该活动是新任务的根活动时,此属性决定该任务是否不应出现在最近的应用程序列表中。如果要将任务从列表中排除,请设置为“true”;如果要包含在内,请设置为“false”。默认值为“false”。
对于API > 21,您可以尝试使用finishAndRemoveTask()
而不是finish()
是的,通常当您想要在启动活动时拥有特殊属性时,您会向 Intent 提供特殊标志。在这种情况下,使用 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
。
更新:
如果您需要隐藏当前已运行的活动,则可以将此标志与 FLAG_ACTIVITY_CLEAR_TOP 结合使用,这将将新 Intent 发送到现有活动中。但是,您必须考虑并可能尝试用户在堆栈中移动时发生的情况,以及是否会使您的应用程序重新出现在最近的应用程序中。