首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在WorkManager,android中清除已查看的WorkInfo?

在WorkManager中清除已查看的WorkInfo,可以通过以下步骤实现:

  1. 首先,需要获取到已经完成的WorkInfo列表。可以通过调用WorkManager.getInstance().getWorkInfosByTagLiveData(tag)方法来获取指定标签的WorkInfo列表。其中,tag是你给WorkRequest设置的标签。
  2. 获取到WorkInfo列表后,可以遍历列表,找到已经完成的WorkInfo对象。
  3. 对于已经完成的WorkInfo对象,可以调用WorkManager.getInstance().pruneWork()方法来清除已查看的WorkInfo。这个方法会删除已经完成的WorkInfo,释放相关资源。

需要注意的是,WorkManager会自动清理已完成的WorkInfo,但是这个清理操作是异步的,可能不会立即生效。如果需要立即清理已完成的WorkInfo,可以手动调用WorkManager.getInstance().pruneWork()方法。

WorkManager是Android Jetpack中的一个组件,用于管理和调度后台任务。它提供了一种简单且可靠的方式来执行延迟任务、周期性任务和一次性任务。通过使用WorkManager,可以确保任务在设备重启、应用程序关闭或设备休眠时仍然能够正常运行。

推荐的腾讯云相关产品:腾讯云移动推送(https://cloud.tencent.com/product/tpns)可以用于在移动设备上发送推送通知,可以与WorkManager结合使用,实现更灵活的后台任务调度和通知推送功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android Jetpack架构组件(七)之WorkManager

一、WorkManager概述 1.1 WorkManager简介 在Android应用开发中,或多或少的会有后台任务的需求,根据需求场景的不同,Android为后台任务提供了多种不同的解决方案,如Service...为了解决Android耗电的问题,Android提供了WorkManager ,用来对应用中那些不需要及时完成的任务提供一个统一的解决方案,借助WorkManager,开发者可以轻松调度那些即使在退出应用或重启设备时仍应运行的可延期异步任务...已调度的工作存储在内部托管的 SQLite 数据库中,由 WorkManager 负责确保该工作持续进行,并在设备重新启动后重新调度。...Worker 实例,以及如何在工作请求中发送该实例。...如果是唯一任务,将 ExistingWorkPolicy 为 REPLACE 的新 WorkRequest 加入到了队列中时,旧的 WorkRequest 会立即被视为已取消。

2.1K11

JetPack--WorkManager

WorkManager是用于后台执行任务的工具,相比于Service、JobSchedule等,它拥有很低的能耗,但是它不是立即执行任务的,对于一些不需要及时完成的任务,使用WorkManager是一个很好的选择...WorkManager的兼容性也很好,最低支持api14,api23以前,WorkManager内部是使用了JobSchedule,23以后使用的是AlarmManager+BroadCastReceiver...,继承Worker,doWork方法需要返回一个Result的结果,有成功、重试、失败: package com.aruba.workmanager; import android.content.Context...(this).enqueue(workRequest); 2.指数退避策略 我们也可以为任务配置指数退避策略,当任务需要retry时,它会根据给定的退避时间指数增长,列如:退避时间为2,重试的时间间隔为...中,doWork方法内可以获取到创建时传递的参数,并且传递新的参数 @NonNull @Override public Result doWork() { Log.i

66810
  • WorkManager从入门到实践,有这一篇就够了

    例如我们来实现一个清除相关目录下的.png图片的Work class CleanUpWorker(context: Context, workerParams: WorkerParameters) :...由于篇幅有限,这里就不一一展开,感兴趣的可以查看源码 4.2 PeriodicWorkRequest PeriodicWorkRequest是可以周期性的执行任务,它的使用方式与配置和OneTimeWorkRequest...WorkManager支持两种方式来获取响应结果 Request.id: WorkRequest的id Tag.name: WorkRequest中设置的tag 同时返回的WorkInfo还支持LiveData...WorkInfo获取的本质是通过操作Room数据库来获取。在文章的Work部分已经提到,在执行完Work任务之后传递的数据将会保存到Room数据库中。...7 项目地址 7.1 Android精华录 该库的目的是结合详细的Demo来全面解析Android相关的知识点, 帮助读者能够更快的掌握与理解所阐述的要点。

    1.9K20

    Jetpack组件之WorkManager

    首语 Android应用中大部分都需要执行后台任务,因此也提供了多种解决方案,如JobScheduler、Loader等。但不合理的使用这些API,会造成消耗大量电量。...JetPack中的WorkManager为应用程序执行后台任务提供了 一个统一的解决方案。 WorkManager可以自动维护后台任务的执行时机,执行顺序,执行状态。...任务一定会被执行 WorkManager能保证任务一定会被执行,即使应用程序不在运行中,甚至是在设备重启后,任务仍然会在适当的时刻执行,这是因为WorkManager有自己的数据库,任务的所有信息和数据都保存在数据库中...注: WorkManager宣称能够保证任务得到执行,但是在非Android原生系统的真是设备上进行测试发下,应用彻底退出和设备重启后,任务没有再次被执行。...这也是Android的碎片化所导致的,许多厂商修改了手机ROM,造成不能得到执行,因此,分析需求是否可以使用WorkManager。

    1.2K10

    WorkManager的用法

    一.WorkManager的作用   绝大部分应用程序都有后台执行任务的需求,根据需求的不同,Android为后台任务提供了多种解决方案,如JobShedule,Loader,Service等。...如果这些api没有被正确的使用,则可能导致消耗大量的电量。WorkManager为应用程序中那些不需要及时完成的任务提供了一个统一的解决方案,以便在设备电量和用户体验间达到一个比较好的平衡。...WorkManager有三个重要特点,分别如下:   1.针对的是不需要及时完成的任务   2.保证任务一定被执行   3.兼容范围广,最低能兼容API Level14 二.WorkManager的基本使用方法...doWork()方法中执行 Log.i("OneTimeWorkRequest","Work Start!")...(oneTimeWorkRequest);   5.观察任务的状态,任务提交系统后,可以通过WorkInfo获知任务的状态,有三种方式获取WorkInfo对象:     (1)WorkManager.getWorkInfosByTag

    43930

    Android中WorkManager的简单使用

    Android中WorkManager的简单使用1.简介:WorkManager:WorkManager是Google推出的一个新组件,用于替代传统的Service进行后台任务处理。...灵活的触发器‌:可以根据需要设置不同的触发器,如定时任务、网络状态变化等。‌自动管理‌:WorkManager会自动管理任务的执行和重试,减少了开发者的工作量。‌...它包含任务的唯一标识符、约束条件(如网络连接、充电状态等)以及其他配置选项。Worker(工作者):执行实际后台任务的类。您可以扩展Worker类并重写doWork()方法来定义自己的后台逻辑。...Constraints(约束条件):用于指定工作请求在何时运行的条件,如网络状态、电池状态等。WorkInfo(工作信息):提供有关工作请求当前状态和结果的信息。...由于Service依赖于主线程,不适合进行耗时的操作。‌WorkManager适用场景‌:适用于需要延迟执行或应用退出后仍需运行的任务,如定时任务、数据同步等。

    15000

    WorkManager 基础入门

    WorkManager 是一个 Android Jetpack 库,当满足工作的约束条件时,用来运行可延迟、需要保障的后台工作。对于许多类型的后台工作,WorkManager 是当前的最佳实践方案。...,而不是并行的三个滤镜请求中的。...监视 LiveDataWorkInfo> 时,你会看到这些状态;例如,你可能会看到: “happy path” 或工作状态 工作状态经历的 “happy path” 如下: BLOCKED:只有当工作在链中并且不是链中的下一个工作时才会出现这种状态...它的状态将会以 FAILED 结束,因此,状态的完整流程图如下所示: (来自:Working with WorkManager Android 开发者峰会 2018) 想看精彩的视频讲解,请查看 WorkManager...想亲自试试 WorkManager 吗?查看 codelab,包含 Kotlin 和 Java 代码。 随着我们继续更新本系列,请继续关注有关 WorkManager 主题的更多博客文章。

    21310

    WorkManager 基础入门

    WorkManager 是一个 Android Jetpack 库,当满足工作的约束条件时,用来运行可延迟、需要保障的后台工作。对于许多类型的后台工作,WorkManager 是当前的最佳实践方案。...,而不是并行的三个滤镜请求中的。...“happy path” 或工作状态 工作状态经历的 “happy path” 如下: BLOCKED:只有当工作在链中并且不是链中的下一个工作时才会出现这种状态。...(来自:Working with WorkManager Android 开发者峰会 2018) 想看精彩的视频讲解,请查看 WorkManager Android 开发者峰会演讲。...想亲自试试 WorkManager 吗?查看 codelab,包含 Kotlin 和 Java 代码。 随着我们继续更新本系列,请继续关注有关 WorkManager 主题的更多博客文章。

    99060

    Android开发笔记(一百八十八)工作管理器WorkManager

    Android11不光废弃了AsyncTask,还把IntentService一起废掉了,对于后台的异步服务,官方建议改为使用工作管理器WorkManager。...当然这些后台工具的用法各不相同,徒增开发者的学习时间而已,于是乎谷歌索性把它们统一起来,在Jetpack库中推出了工作管理器WorkManager。...这个WorkManager的兼容性很强,对于Android6.0或更高版本的系统,它通过JobScheduler完成后台任务;对于Android6.0以下版本的系统(不含Android6.0),通过AlarmManager..., workInfo -> {     if (workInfo.getState() == WorkInfo.State.SUCCEEDED) { // 工作处理成功         Data outputData...点此查看Android开发笔记的完整目录

    1.6K30

    WorkManager: 周期性任务

    如果您一直关注本系列文章,则会发现我们已经讨论过: Android Jetpack WorkManager | Android 中文教学视频 WorkManager 在 Kotlin 中的实践 本文将介绍...接下来的内容中,我都会使用需要传入 context 的新语法来获取 WorkManager 实例。...更多有关获取任务状态的信息,请参考本系列的《Android Jetpack WorkManager | Android 中文教学视频》和 WorkManager 的文档:任务状态和观察任务。...您可以通过阅读 使用 WorkManager 2.1.0 进行测试 这篇文档来了解更多,也可以查看 Sunflower 示例应用 中使用这些新的构造器进行测试的示例: import android.content.Context...的 [android-workmanager] 标签 Android 开发者博客上关于 Power 的文章系列

    1.9K30

    Jetpack WorkManager 看这一篇就够了~

    前言 最近有读者反馈,在我的新书《Android Jetpack 开发:原理解析与应用实战》中并没有提及到WorkManager,这是因为目前这个东西在国内并不是很好用。...我们可以通过注册监听器来观察 WorkInfo 的变化,以根据ID查询WorkInfo状态为例,代码如下所示: WorkManager.getInstance(this).getWorkInfoByIdLiveData...,这里读者可自行查看API。...总结 特性及注意事项 在早于 Android 12 的 API 版本中,加急工作都是由前台服务执行的,而从 Android 12 开始,它们将由加急作业 (expedited job) 实现。...所以在第4小节中,默认Android12上并不会显示通知栏 WorkManager 只是一个处理定时任务的工具 WorkManager 最早兼容到 API 14(Android 4.0)

    1.6K20

    是时候更新手里的武器了—Jetpack架构组件简析

    迫不及待了吧,跟随我一起看看每个库的神奇之处。 数据绑定 “数据绑定库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。...” Lifecycles,称为生命周期感知型组件,可以感知和响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。...与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。...不会因 Activity 停止而导致崩溃如果观察者的生命周期处于非活跃状态(如返回栈中的 Activity),则它不会接收任何 LiveData 事件。...接下来一一解密 关于应用退出和设备重启 如果APP正在运行,WorkManager会在APP进程中起一个新线程来运行任务;如果APP没有运行,WorkManager会选择一个合适的方式来调度后台任务--

    2.9K20

    WorkManager 系列课程 | MAD Skills

    在最后一集中,我们介绍了如何将 GCMNetworkManager 和 FirebaseJobDispatcher 中的旧代码迁移到 WorkManager。...在本集的最后,Ben 还演示了如何在工作完成后返回结果,以使界面随之更新。...一旦您的应用开始以 API 级别 30 及更高版本为目标平台,则 GCM NetworkManager 和 FirebaseJobDispatcher 在 Android 6.0 及以上版本的设备将会不工作...点击这里查看视频 第 5 集: Hugo 谈 WorkManager Android GDE Hugo Visser 谈论了他为何选择在自己最近开发的一款健康应用中使用 WorkManager,以及该库为他的开发工作带来了哪些帮助...点击这里查看视频 第 6 集: 现场问答 在本系列课程的最后是一个问答环节,我们回答了大家提出的 WorkManager 相关问题。

    33620

    自定义 WorkManager —— 基础概念

    目前为止本系列已经讨论过: Android Jetpack WorkManager | Android 中文教学视频 WorkManager 在 Kotlin 中的实践  WorkManager: 周期性任务...您也可以查看 Advanced WorkManager codelab 实战教程,以了解此功能在真实示例中的实现,以及您可以通过此功能获取到什么样的信息。...现在让我们回顾一下我们已经做了的事情,然后深入了解其中每一步的详细信息: 禁用默认初始化 实现一个自定义 WorkerFactory 创建自定义配置 初始化 WorkManager 禁用默认初始化 如 ...WorkManager 的文档 中描述,禁用操作要在您的 AndroidManifest.xml 文件中完成。...接下来的文章我们将会讨论如何在自定义 WorkManager 配置时使用 Dagger,感兴趣的读者请继续关注。

    63840

    WorkManager 在 Kotlin 中的实践

    WorkManager 是一个 Android Jetpack 扩展库,它可以让您轻松规划那些可延后、异步但又需要可靠运行的任务。...对于绝大部分后台执行任务来说,使用 WorkManager 是目前 Android 平台上的最佳实践。...目前为止 WorkManager 系列已经讨论过: Android Jetpack WorkManager | Android 中文教学视频 在这篇文章中,我们将讨论: 在 Kotlin 中如何使用 WorkManager...如 WorkManager 发布日志 中描述的那样,只需要在 build.gradle 文件中添加 androidx.work:work-runtime-ktx 依赖项,即可使用 KTX 版的 WorkManager...要了解关于如何在 Kotlin 中使用 WorkManager,可以尝试这个 codelab。 测试 Worker 类 WorkManager 有几个额外的工具类,可以很方便地测试您的 Work。

    1.9K10

    Android 应用启动性能 | 延迟初始化

    在 上一篇文章 中,我展示了 content provider (它出现在应用合并后的 manifest 文件) 是如何在应用启动的时候自动加载第三方库以及模块的。...为了通过应用启动库加载 WorkManager,我先在应用的 build.gradle 文件中添加了应用启动库: // 查看最新的版本号 https://developer.android.google.cn...如果您需要在应用中使用多个库,请查看 应用启动使用手册 中关于使用 dependencies() 的详情。...标签很重要,因为它表示需要 Android Studio 删除自动生成的 provider,而该 provider 是在 build.gradle 文件中添加 WorkManager 后生成的。...您可以通过查看合并后的 manifest 文件来验证 -- 详情请查看 第一篇文章),但是它们有两个很重要的不同点: tools:node="merge" 这个参数主要用于 Android Studio

    68120

    Android Studio 对现代 WorkManager 的支持

    在 上一篇文章 中,我们提到了现代 WorkManager API 对工具支持方面也进行了改进,本文我们将结合实际案例来看看具体有哪些改进。如果您更喜欢通过视频了解此内容,请 点击此处 查看。...△ 打开 App Inspection 面板 示例演示 本次演示使用了 Android Studio Bumblebee 和 GitHub 上公开的 WorkManager 示例。...△ 使用应用检查器面板的图表视图 您也可以从类似图示的图像中查看整个接续队列的内容。请从中选择一个 Worker,切换到图表视图 (按钮为流程图样式)。...您可以点击数据库检查器标签页,并在其中查找某项工作的唯一 ID。您会发现,有关该特定执行的各项信息都被保存下来了。 后台任务检查器 您还可以进一步查看某个特定的执行被安排到了哪一个队列中。...以上便是 WorkManager 相关全部内容,如需更多资源,请参阅: 现代 WorkManager API 已发布 WorkManager 系列文章: 使用 Dagger 自定义 WorkManager

    46720
    领券