0

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

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

以下是同步流程:

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

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

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

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

4

1 回答 1

0

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

`Workmanager 有什么问题?也许你设置不正确。Workmanager中的 Google IO 有很好的讨论,如果你真的遇到错误,请提出问题。

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

于 2018-07-25T10:38:00.577 回答