【问题标题】:How to avoid asynctask and WorkManager fetch same record of database如何避免 asynctask 和 WorkManager 获取相同的数据库记录
【发布时间】:2018-07-25 18:38:00
【问题描述】:

我有两种方法可以在本地数据库和服务器之间进行同步。

  1. 异步任务
  2. 工作经理

这是同步的流程:

AsyncTask/WorkManager 从本地数据库获取数据上传到服务器 --> if (response.status == "success") 然后删除数据

但问题是,AsyncTaskWorkManager 可能几乎在同一时间运行,并且彼此获取完全相同的数据,从而导致服务器中的双重数据。

我需要同时使用这两个,因为WorkManager 有问题,不能被信任,我也不能真正单独依赖Asynctask

有什么办法可以避免这种双重数据?

【问题讨论】:

    标签: android android-asynctask android-workmanager


    【解决方案1】:

    您应该尝试仅通过一种机制完成一项任务 - 否则您将始终遇到并发问题。

    `Workmanager 有什么错误?也许你设置不正确。有来自Google IO in Workmanager的好话, 如果你真的遇到错误,请提交问题。

    此外,应该不再需要使用AsyncTask,请尽量避免使用它,因为它确实非常容易出错。异步工作有很多更好的东西(workmanager, coroutinen, rxjava, ...)

    【讨论】:

    • 这里stackoverflow.com/questions/51476480/…。看看 rahul 的回答,我确实遇到了这个问题,有时 workmanager 停止运行(以前工作过)
    • alpha05已发货,您所指的bug也已修复。
    猜你喜欢
    • 1970-01-01
    • 2019-09-26
    • 2021-11-22
    • 2014-03-11
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    相关资源
    最近更新 更多