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 属性可能会影响系统,但具体影响程度取决于其他因素。

相关推荐
雨白11 小时前
NDK 初探:基于 C++ 实现参数哈希与签名校验
android
程序员正茂12 小时前
Android studio中初步使用OpenCV库
android·opencv
紫_龙13 小时前
window 维护多版本Android studio
android·ide·android studio
杉氧14 小时前
KMP 自动化之路 (4):iOS 自动化构建与签名 —— 攻克最硬的骨头
android·架构·android jetpack
通玄18 小时前
Jetpack Compose 入门系列(十):Paging 3 分页加载
android
hunterandroid18 小时前
DataStore 工程化实践:迁移、并发更新与异常恢复
android·前端
程序员-珍20 小时前
报错下载android sdk失败
android·java
齊家治國平天下1 天前
AAOS 电源管理深度解析:休眠/唤醒/功耗优化
android·车载系统·aaos·aosp·电源管理·休眠唤醒·carpowermanager
qq3621967051 天前
安卓大版本升级后APK不兼容怎么办?2026跨版本更新指南
android
Xzaveir1 天前
企业号码展示不可观测怎么办:状态机、拨测事件与异常回放
android·人工智能