如何解决如何使用 Android Jetpack WorkManager 观察工作状态?
我正在尝试制作一个闹钟应用,它有一个回收站视图,每个回收站项目都有一个开关来安排闹钟。警报使用 WorkManager 安排未来的通知。
当我尝试上下滚动回收器视图时,它使用的是旧视图支架,因此它会在实际上未安排的警报上显示选中的开关按钮。
为了尝试解决这个问题,我在 onBind() 中考虑,检查是否使用 WorkManager 安排了该项目的工作。如果当前已安排,请检查开关。否则,请关闭开关。
我查看了 Google 的文档并找到了这个 https://developer.android.com/topic/libraries/architecture/workmanager/how-to/managing-work#observing,但是,我不确定如何使用 ListenableFuture。
任何人都可以提供建议,我可以如何检查使用 WorkManager 安排的工作的状态,以及在 onBind() 中针对我遇到的问题执行此代码是否是正确的解决方案(在其他视图持有者上检查切换按钮)?
解决方法
请参阅下一段...必须添加观察者:
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
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。