我应该使用什么将数据库服务器同步到本地? IntentService 或 AsyncTask

what should I use for syncing database server to local? IntentService or AsyncTask

我正在创建需要离线工作的应用程序。所以我需要在服务器数据库和本地数据库之间同步。我已经编写了使用 AsyncTask 在服务器和本地之间进行同步的脚本,但有时它无法立即执行脚本(延迟),我不确定尽管应用程序已关闭,但是否可以执行 asynctask。

任务

用户向服务器请求新数据 --> 服务器在 JSON 中提供新数据(并向其他 phone 发送 firebase 推送通知同步 --> AsyncTask/IntentService 处理用户 phone (insert/update)

中的数据

我什么时候需要执行任务?

  1. 每次我按下保存按钮。
  2. 当用户收到类型为 "sync" 的 firebase 推送通知时(我已经编写了这个脚本)。 (脚本需要运行应用程序是否关闭或打开并且没有点击通知,通知不可点击并且只是信息同步任务运行ning)

所以我的问题是我应该为此目的使用 AsynTask 还是 IntentService?

**任何关于通过改造与 IntentService 同步的教程都会对我有很大帮助。

在 IntentService 和 AsyncTask 之外,IntentService 更适合这个目的。 AsyncTask 不能独立存在,需要从 Activity 或服务启动。此外,在这种情况下,您确实需要在任务完成时更改 UI,因此 AsyncTask 是不可能的。

对于数据同步,您还可以查看 WorkManager/JobScheduler。它很容易使用 API,并且会为您提供更好的同步选项,例如:连接到 WiFi 时同步,或连接到充电器时同步等。