Android 如何避免asynctask和WorkManager获取数据库的相同记录

Android 如何避免asynctask和WorkManager获取数据库的相同记录,android,android-asynctask,android-workmanager,Android,Android Asynctask,Android Workmanager,我有两种方法可以将本地数据库同步到服务器 异步任务 工作经理 以下是同步流程: AsyncTask/WorkManager从本地数据库获取数据以上载到服务器-->if(response.status==“success”)然后删除数据 但问题是,AsyncTask和WorkManager几乎可以在同一时间运行,并且彼此获取完全相同的数据,这导致了服务器中的双重数据 我需要同时使用这两种方法,因为WorkManager有缺陷,不可信,而且我也不能单独依赖Asynctask 有没有办法避免这种双重数

我有两种方法可以将本地数据库同步到服务器

  • 异步任务
  • 工作经理
  • 以下是同步流程:

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

    但问题是,
    AsyncTask
    WorkManager
    几乎可以在同一时间运行,并且彼此获取完全相同的数据,这导致了服务器中的双重数据

    我需要同时使用这两种方法,因为
    WorkManager
    有缺陷,不可信,而且我也不能单独依赖
    Asynctask


    有没有办法避免这种双重数据?

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

    “工作经理”有什么问题?也许你的设置不正确。有来自美国的良好会谈, 如果你真的遇到了一个bug,请提交一个问题


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

    这里。看看rahul的答案,我确实面临着这个问题,有时workmanager停止运行(它以前工作过)
    alpha05
    已经发布,您提到的bug也已经修复。