我正在创建需要脱机工作的应用程序。所以我需要在服务器数据库和本地数据库之间同步。我已经写了脚本来使用AsyncTask在服务器和本地之间进行同步,但是有时它无法立即(延迟)执行脚本,而且我不确定即使关闭了应用程序也可以执行asynctask。
任务:
用户向服务器-> 请求新数据,服务器以JSON提供新数据(并向其他手机发送Firebase推送通知,以同步-> AsyncTask / IntentService处理用户电话中的数据(插入/更新)
何时需要执行任务?
所以我的问题是我应该为此目的使用AsynTask还是IntentService?
**任何有关通过翻新与IntentService进行同步的教程都会对我有很大帮助。
答案 0 :(得分:1)
在IntentService和AsyncTask中,IntentService更适合于此目的。 AsyncTask不能独立生存,需要从Activity或服务中启动。另外,在这种情况下,您确实需要在任务完成时更改UI,因此AsyncTask成为不可能。
对于数据同步,您还可以查看WorkManager / JobScheduler。它使用API很好,并且会为您提供更好的同步选项,例如:连接到WiFi时同步,或者连接到充电器时同步。