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

相关推荐
编程洪同学1 小时前
Spring Boot 中实现自定义注解记录接口日志功能
android·java·spring boot·后端
氤氲息3 小时前
Android 底部tab,使用recycleview实现
android
Clockwiseee3 小时前
PHP之伪协议
android·开发语言·php
小林爱4 小时前
【Compose multiplatform教程08】【组件】Text组件
android·java·前端·ui·前端框架·kotlin·android studio
小何开发5 小时前
Android Studio 安装教程
android·ide·android studio
开发者阿伟5 小时前
Android Jetpack LiveData源码解析
android·android jetpack
weixin_438150995 小时前
广州大彩串口屏安卓/linux触摸屏四路CVBS输入实现同时显示!
android·单片机
CheungChunChiu6 小时前
Android10 rk3399 以太网接入流程分析
android·framework·以太网·eth·net·netd
木头没有瓜6 小时前
ruoyi 请求参数类型不匹配,参数[giftId]要求类型为:‘java.lang.Long‘,但输入值为:‘orderGiftUnionList
android·java·okhttp
键盘侠0076 小时前
springboot 上传图片 转存成webp
android·spring boot·okhttp