隐藏任务栈在最近列表中

一、android:excludeFromRecents 方式

最常见的方式就是这个excludeFromRecents标签了,它意味着是否应从最近使用的应用列表(即概览屏幕)中排除该 Activity 启动的任务。换言之,当该 Activity 是新任务的根 Activity 时,此属性确定最近使用的应用列表中是否应出现该任务。如果应从列表中排除任务,请设置“true”;如果应将其包括在内,则设置“false”。默认值为“false”。
注意:如果Activity不是任务栈的第一个Activity,设置该标签不会起作用,同理,如果栈内第一个Activity设置了true,栈内其他Activity同样不会出现在最近任务列表里。

二、Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS

FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS作用和android:excludeFromRecents效果相同,也同样只对栈内第一个Activity生效。

三、setExcludeFromRecents

根据上文可知,android:excludeFromRecents和Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS都只对栈内第一个Activity,这其实是因为该设置真正针对Activity栈,在API21之后,针对Activity栈提供了setExcludeFromRecents方法,可以通过以下方法隐藏自己:

ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
if (am != null) {
    List<ActivityManager.AppTask> tasks;
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
        tasks = am.getAppTasks();
        if (tasks != null && tasks.size() > 0) {
            tasks.get(0).setExcludeFromRecents(exclude);
        }
    }
}

该方式还有一个优点,就是你可以在Activity生命周期的任何时间内改变其在最近任务的可见性,而不是像上面两种只能在栈内第一个Activity启动时改变。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网小熊猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值