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

Android中WorkManager的简单使用

它的主要特点包括:‌独立执行‌:WorkManager的任务可以在应用退出后继续执行,适用于需要延迟执行或应用退出后仍需运行的任务。‌...自动管理‌:WorkManager会自动管理任务的执行和重试,减少了开发者的工作量。‌...兼容性‌:WorkManager会根据设备的API情况自动选择合适的实现方式,2.核心概念:在深入了解WorkManager之前,让我们先了解一些核心概念:WorkRequest(工作请求):表示要执行的单个后台任务...Worker(工作者):执行实际后台任务的类。您可以扩展Worker类并重写doWork()方法来定义自己的后台逻辑。WorkManager(工作管理器):用于调度和跟踪工作请求的中心类。...它负责将工作请求提交给适当的后台任务执行器,并处理与工作周期、重试策略等相关的逻辑。Constraints(约束条件):用于指定工作请求在何时运行的条件,如网络状态、电池状态等。

14600
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Jetpack-WorkManager

    我们在开头就说了,workManager是一个可以用来进行后台任务的组件。...我们都知道通常在android中进行后台任务我们都用service,既然已经有了service,那为什么还要出一个workManager呢?...因为workManager比service强大太多,它可以在应用程序退出或者其他原因中止后,依然执行(本地任务如:本地图片的读取展示)或者应用程序打开后继续执行任务(网络请求)。...调用流程 看懂上面图片的意思了吧,翻译一下就是workManager发起一个任务,如果当前程序正在运行,它就会再开一个工作线程去处理,如果当前程序退出或者在后台,它就会选择一个合适的方案去执行,这就包括了...return jsonString } } 网络请求用的是kotlin中的协程,api接口是网络上随便找的。

    1.5K20

    Android Jetpack架构组件(七)之WorkManager

    工作线程通常能够立即执行,并在任务完成后将结果反馈给用户,而WorkManager不是即时的,它不能保证任务能够被立即执行。...后台延时任务 WorkManager能够保证任务一定会被执行,但不是不能保证被立即执行,也即说在适当的时候被执行。因为WorkManager有自己的数据库,与任务相关的信息和数据就保存到数据库中。...StorageNotLow:如果设置为 true,那么当用户设备上的存储空间不足时,工作不会运行。...对于工作请求,我们可以通过 WorkRequest.getTags() 检索其标记集。 3.1.8 分配输入数据 有时候,任务需要输入数据才能正常运行。...输入值以键值对的形式存储在 Data 对象中,并且可以在工作请求中设置,WorkManager 会在执行工作时将输入 Data 传递给工作,Worker 类可通过调用 Worker.getInputData

    2.1K11

    Android Jetpack - 使用 WorkManager 管理后台任务

    环境约束 WorkManager 允许我们指定任务执行的环境,比如网络已连接、电量充足时等,在满足条件的情况下任务才会执行。...这也是为什么前面说 WorkManager.getInstance().enqueue(request) 是将任务加入任务队列,并不代表马上执行任务,因为任务可能需要等到满足环境条件的情况才会执行。...以上,就是本文对 WorkManager 的简单介绍和用法讲解。 保活? 这里引入一个思考,既然 WorkManager 的生命力这么强,还可以实现定时任务,那能不能让我们的应用生命力也这么强?...换句话说,能不能用它来保活?...基本上,WorkManager 能做的,Service 也能做,我并没有想到有什么情况是非用 WorkManger 不可的。

    1.9K70

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

    当然这些后台工具的用法各不相同,徒增开发者的学习时间而已,于是乎谷歌索性把它们统一起来,在Jetpack库中推出了工作管理器WorkManager。...特别要注意,由于doWork方法运行于分线程,因此该方法内部不能操作界面控件。...3步的工作请求对象加入到管理器的执行队列,由管理器调度并执行请求任务,执行工作的代码例子如下所示: // 4、执行工作请求 WorkManager workManager = WorkManager.getInstance...眼尖的读者可能发现,第3步的工作请求类名叫做OneTimeWorkRequest,读起来像是一次性工作。...最后在活动页面中集成工作管理器,运行测试App后点击启动按钮,观察到任务执行结果如下图所示,可见成功获知了后台工作的运行情况。

    1.6K30

    Android 多线程技术哪家强?

    所以一段代码,在保证没有内存泄漏的情况下,能不能在异步框架下执行完毕,就得取决于代码所在载体(Activity/Fragment)的生命周期了。...WorkManager.getInstance() .enqueue(OneTimeWorkRequest.Builder(MakeSubscriptionWorker::class.java...所以,所谓的延迟,并不是那么的吓人,笔者亲测,在App还在前台的时候执行WorkManager,异步任务基本上还是马上会进入调度执行的,但是当app进入后台之后,WorkManager就会尝试暂停任务。...我突然发现,推广RxJava的时间成本,还有团队学习的成本,已经不能和以前在创业公司同日而语了。...WorkManager.getInstance() .beginWith(OneTimeWorkRequest.Builder(MakeSubscriptionWorker::class.java

    96930

    笔记之Android架构组件-WorkManager

    所以,在不久的将来,service的使用范围会越来越小,取而代之的,是谷歌推出的新的技术:WorkManager。 WorkManager在工作的触发器 满足时, 运行可推迟的后台工作。...WorkManager会根据设备API的情况,自动选用JobScheduler, 或是AlarmManager来实现后台任务,WorkManager里面的任务在应用退出之后还可以继续执行(注意:是程序退出...// 对于一次性 WorkRequest,请使用 OneTimeWorkRequest, //对于周期性工作,请使用 PeriodicWorkRequest // 构建一次性请求...,那么其运行周期不能短与15分钟。...每个唯一的工作序列都有一个名字,WorkManager一次只允许一个工作序列使用该名称,当我们创建一个新的唯一工作序列时,如果已经有一个未完成的序列具有相同的名称,则指定WorkManager应执行的操作

    91210

    WorkManager: 周期性任务

    : 定义周期性任务 取消任务 自定义 WorkManager 配置 重复执行的任务 之前的文章中,我们已经介绍过使用 OneTimeWorkRequest 来规划任务。...间隔和弹性间隔 (FlexInterval) 如前文所述,WorkManager 不能保证任务在精确的某个时间去执行,但如果这是您的需求,那您可能需要寻找其他的 API。...由于重复间隔实际上是最小间隔,所以 WorkManager 还提供了一个附加参数,您可以使用该参数来指定一个窗口,从而让 Android 可以在窗口中执行您的任务。...目前,如果您需要在每天的大致同一时间执行某一个 Worker,那么最好的选择是使用 OneTimeWorkRequest 并设置初始延迟,这样您便可以在正确的时间执行任务: val currentDate...我已经看到这种模式几次,在 Application#onCreate 方法中,开发者创建了 WorkRequest 并将其入队。看起来一切正常,直到您发现有些任务重复执行了很多次。

    1.9K30

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

    Rouse 读完需要 15 分钟 速读仅需8分钟 1 前言 上一次我们对Paging的应用进行了一次全面的分析,这一次我们来聊聊WorkManager。...这就产生了操作上的bug,降低了用户的体验,增加了用户不必要的操作。 那么该如何解决呢?很简单,看WorkManager的定义,使用WorkManager就可以轻松解决。...4 配置WorkRequest WorkManager主要是通过WorkRequest来配置任务的,而它的WorkRequest种类包括: OneTimeWorkRequest PeriodicWorkRequest...4.1 OneTimeWorkRequest 首先OneTimeWorkRequest是作用于一次性任务,即任务只执行一次,一旦执行完就自动结束。...5 添加到WorkContinuation中 上面我们已经将WorkRequest配置好了,剩下要做的是将其加入到work工作链中进行执行。

    1.9K20
    领券