【问题标题】:How to observe work status with Android Jetpack WorkManager?如何使用 Android Jetpack WorkManager 观察工作状态?
【发布时间】:2021-05-11 03:34:08
【问题描述】:

我正在尝试制作一个警报应用程序,该应用程序具有回收站视图,并且每个回收站项目都有一个用于安排警报的开关。警报使用 WorkManager 安排未来的通知。

当我尝试上下滚动回收站视图时,它使用的是旧视图支架,因此它会在实际未安排的警报上显示一个选中的开关按钮。

为了尝试解决这个问题,我想在 onBind() 中检查该项目的工作是否正在使用 WorkManager 安排。如果当前已安排,请检查开关。否则,请关闭电源。

我查看了 Google 的文档并找到了这个 https://developer.android.com/topic/libraries/architecture/workmanager/how-to/managing-work#observing,但是,我不确定如何使用 ListenableFuture。

任何人都可以提供建议我如何检查使用 WorkManager 安排的工作的状态,以及在 onBind() 中针对我遇到的问题执行此代码是否是正确的解决方案(在其他视图持有者上检查切换按钮)?

【问题讨论】:

    标签: android androidx android-workmanager observers


    【解决方案1】:

    请看下一段……必须添加一个观察者:

    workManager
    
        .getWorkInfosForUniqueWork(jobName)  // make the promise; returns ListenableFuture 
    
        .observe(getViewLifecycleOwner(), workInfo -> { // add an observer to the promise
    
            // update the adapter & notify, when it returns <List<WorkInfo>> or WorkInfo
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      • 1970-01-01
      相关资源
      最近更新 更多