【问题标题】:what should I use for syncing database server to local? IntentService or AsyncTask我应该使用什么将数据库服务器同步到本地? IntentService 或 AsyncTask
【发布时间】:2018-07-12 15:45:32
【问题描述】:

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

任务

用户向服务器请求新数据 --> 服务器以 JSON 格式提供新数据(并且还向其他手机发送 Firebase 推送通知以进行同步 --> AsyncTask /IntentService 处理用户手机中的数据(插入/更新)

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

  1. 每次按保存按钮。
  2. 当用户收到类型为“sync”的 Firebase 推送通知时(我已经编写了此脚本)。 (无论应用程序关闭还是打开,脚本都需要运行,不点击通知,通知是不可点击的,只是信息同步任务运行)

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

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

【问题讨论】:

    标签: android android-asynctask android-intentservice


    【解决方案1】:

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

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

    【讨论】:

    • 我更喜欢 WorkManager/JobScheduler
    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2017-02-08
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 2016-04-24
    相关资源
    最近更新 更多