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

相关推荐
猿小帅015 分钟前
androidnetflix手机版遥控器操作
android·framework
l and10 分钟前
Android Http-server 本地 web 服务
android
CYRUS STUDIO1 小时前
使用 AndroidNativeEmu 调用 JNI 函数
android·汇编·arm开发·arm·逆向·jni
消失的旧时光-19431 小时前
Android 串口通信
android
风浅月明1 小时前
[Android]使用WorkManager循环执行任务
android
_extraordinary_2 小时前
Linux权限(一)
android·linux·excel
人生!?3 小时前
给小米/红米手机root(工具基本为官方工具)——KernelSU篇
android·linux·智能手机
古苏4 小时前
Android输入事件传递流程系统源码级解析
android
生产队队长6 小时前
ThinkPHP:配置Redis并使用
android·数据库·redis
踏雪羽翼6 小时前
android 差值器的使用
android