如何让Activity不显示在系统的最近任务列表中
最简单的做法,在AndroidManifest.xml的Activity标签中加入excludeFromRecents属性,并设置为true,不加时默认值为false。
<activity android:excludeFromRecents="true" /> <activity
此属性生效范围,经过验证得出以下结果:A、B、C均表示Activity,测试手机红米7
仅A设置excludeFromRecents为true,A启动B,则A、B都不显示在最近任务中
即使B 加上了taskAffinity属性,直接 startActivity(new Intent(context, B.class),B依然不显示
A启动B时,加上Intent.FLAG_ACTIVITY_NEW_TASK标记,最近任务只有B
仅给B设置excludeFromRecents为true,A启动B,A、B的缩略图会出现在最近任务中
也可在Intent中添加标记,效果相同
intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
此种方法有一点不好的地方就是,按了HOME键之后,Activity是完全不显示在最近任务中,即使它还在运行。
而我当前的需求是,运行的时候要在,finish之后移除。而系统默认情况下finish、killProcess,应用窗口缩略图依然会保留在最近任务中。
高级玩法:使用finishAndRemoveTask()将自己移除最近任务。需要SDK 21以上
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { finishAndRemoveTask(); } else { finish(); }
发表评论