我正在开发Android应用,它有3种不同的网络使用案例。配置完成后,需要执行可能长时间运行的将本地数据库与远程数据库同步的过程。稍后,它需要从远程数据库检查更新并同步到本地数据库,但它们通常很小。
在第一次同步完成之前,主要活动并不可用。我想在应用程序本身显示同步进度和/或进度指示/活动的通知,如果它在前台。
同步后,您可以按需下载远程托管的MP3。
我应该使用哪些Android类/模式进行大型的,用户启动的初始数据库同步,任何后续按需mp3文件下载以及后来安排的小型DB同步?我可以使用这些类中的任何一个在我的应用中显示进度通知和活动吗?
对于我的3个用例,Android API提供了这些类/接口:
JobIntentService
似乎是推荐使用的。JobIntentService
用于初始同步和后续同步DownloadManager
SyncAdapter
进行后续同步这是一个好的方法吗?我对使用SyncAdapter犹豫不决,因为它似乎需要更多工作才能获得与作业相同的数据。
答案 0 :(得分:1)
如果您没有额外的lib依赖关系,Rx java可能是一个解决方案。 Rx可以很容易地在后台线程上运行长时间运行的工作。
示例可以在这里找到 https://piercezaifman.com/converting-an-asynctask-to-rxjava/
答案 1 :(得分:-2)
使用 AsyncTask 。并将其置于 服务 。