android:excludeFromRecents

android:excludeFromRecents

    • 基础
    • [从根上影响 Task](#从根上影响 Task)
    • [excludeFromRecents 属性可能会影响系统](#excludeFromRecents 属性可能会影响系统)

基础

android:excludeFromRecents是一种在Android应用程序清单文件(AndroidManifest.xml)中使用的属性,用于指定一个Activity是否应该在最近任务列表(Recents)中排除显示。将这个属性设置为"true"表示该Activity不会出现在最近任务列表中,而设置为"false"或省略该属性则允许Activity在最近任务列表中显示。

示例:

xml 复制代码
<activity
    android:name=".YourActivity"
    android:excludeFromRecents="true">
    <!-- Other activity attributes and configurations -->
</activity>

在上述示例中,YourActivity将被排除在最近任务列表之外。此属性通常用于那些不希望用户通过最近任务列表导航到的特定Activity,例如一些临时性的或不需要频繁切换的Activity。

从根上影响 Task

excludeFromRecents 设置成 true 必须是在 task 的根 activity。

官方文档中对 excludeFromRecents 属性的说明如下:

是否应将该 Activity 启动的任务排除在最近使用的应用列表(即概览屏幕)之外。 也就是说,当该 Activity 是新任务的根 Activity 时,此属性确定任务是否应出现在最近使用的应用列表中。 如果应将任务排除在列表之外,请设置" true ";如果应将其包括在内,则设置" false "。 默认值为" false "。

从这段说明可以看出,excludeFromRecents 属性的作用是将该 Activity 启动的任务排除在最近使用的应用列表之外。而任务是指由同一个应用程序启动的一系列 Activity。因此,如果将 excludeFromRecents 属性设置为 true,则该 Activity 启动的所有后续 Activity 都将不会出现在最近使用的应用列表中。

如果在非根 Activity 中设置 excludeFromRecents 属性,则该属性不会起作用。这是因为非根 Activity 所属的任务已经存在,而 excludeFromRecents 属性只能影响新创建的任务。

从 Android 8.0(API 级别 26)开始,excludeFromRecents 属性还会影响该 activity 启动的后续 activity。也就是说,如果设置了 excludeFromRecents 属性,那么该 activity 启动的后续 activity 也会被排除在最近使用的应用列表之外。

因此,如果要将某个 Activity 排除在最近使用的应用列表之外,必须将该 Activity 设置为 task 的根 Activity。

excludeFromRecents 属性可能会影响系统

excludeFromRecents 属性可能会影响系统。

系统在内存不足时会根据以下几个因素来决定是否杀死某个应用:

  • 应用的优先级
  • 应用的活跃程度
  • 应用的资源占用

其中,应用的优先级是最重要的因素。优先级越高的应用,越不容易被杀死。

excludeFromRecents 属性会影响应用的优先级。当 excludeFromRecents 属性设置为 true 时,应用的优先级会降低。因此,系统在内存不足时可能会优先杀死 excludeFromRecents=true 的应用。

具体来说,当 excludeFromRecents 属性设置为 true 时,应用的优先级会降低 1 级。因此,如果应用的默认优先级是 NORMAL,则设置 excludeFromRecents 属性后,应用的优先级会变为 BACKGROUND。

当然,系统是否会杀死 excludeFromRecents=true 的应用,还取决于其他因素,比如应用的活跃程度和资源占用。如果应用非常活跃,或者占用大量资源,则系统可能会保留该应用,即使其优先级较低。

总而言之,excludeFromRecents 属性可能会影响系统,但具体影响程度取决于其他因素。

相关推荐
JMchen1233 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
crmscs3 小时前
剪映永久解锁版/电脑版永久会员VIP/安卓SVIP手机永久版下载
android·智能手机·电脑
localbob3 小时前
杀戮尖塔 v6 MOD整合版(Slay the Spire)安卓+PC端免安装中文版分享 卡牌肉鸽神作!杀戮尖塔中文版,电脑和手机都能玩!杀戮尖塔.exe 杀戮尖塔.apk
android·杀戮尖塔apk·杀戮尖塔exe·游戏分享
机建狂魔3 小时前
手机秒变电影机:Blackmagic Camera + LUT滤镜包的专业级视频解决方案
android·拍照·摄影·lut滤镜·拍摄·摄像·录像
hudawei9963 小时前
flutter和Android动画的对比
android·flutter·动画
lxysbly5 小时前
md模拟器安卓版带金手指2026
android
儿歌八万首6 小时前
硬核春节:用 Compose 打造“赛博鞭炮”
android·kotlin·compose·春节
消失的旧时光-19439 小时前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed
Jinkxs9 小时前
Gradle - 与Groovy/Kotlin DSL对比 构建脚本语言选择指南
android·开发语言·kotlin
&有梦想的咸鱼&9 小时前
Kotlin委托机制的底层实现深度解析(74)
android·开发语言·kotlin