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 有没有办法避免这种双重数
if(response.status==“success”)
然后删除数据
但问题是,AsyncTask
和WorkManager
几乎可以在同一时间运行,并且彼此获取完全相同的数据,这导致了服务器中的双重数据
我需要同时使用这两种方法,因为WorkManager
有缺陷,不可信,而且我也不能单独依赖Asynctask
有没有办法避免这种双重数据?您应该尝试只通过一种机制完成一项任务-否则您将始终遇到并发问题 “工作经理”有什么问题?也许你的设置不正确。有来自美国的良好会谈, 如果你真的遇到了一个bug,请提交一个问题
此外,不需要再使用
AsyncTask
,请尽量避免使用,因为它确实非常容易出错。异步工作有很多更好的东西(workmanager、coroutinen、rxjava等等)这里。看看rahul的答案,我确实面临着这个问题,有时workmanager停止运行(它以前工作过)alpha05
已经发布,您提到的bug也已经修复。