一旦用户正确登录,我就有很长的网络任务要做。该任务包括以下内容:
1) 4 次调用 REST Web 服务。
2)将第1点获得的数据填充到sqlite数据库中。
3) 从同一个 REST Web 服务下载多个图像(例如 400)。
我使用 Volley 作为我的默认网络库来做这些事情。
我的问题是:
你有什么我应该考虑的建议吗?IntentService 是实现此类任务的最佳方法还是 Service 是最佳方法?
一旦用户正确登录,我就有很长的网络任务要做。该任务包括以下内容:
1) 4 次调用 REST Web 服务。
2)将第1点获得的数据填充到sqlite数据库中。
3) 从同一个 REST Web 服务下载多个图像(例如 400)。
我使用 Volley 作为我的默认网络库来做这些事情。
我的问题是:
你有什么我应该考虑的建议吗?IntentService 是实现此类任务的最佳方法还是 Service 是最佳方法?
Volley 作为服务运行是一个很好的方法。
合并消息总线,如 Otto,将数据传输到您的应用程序。该服务可以在其操作完成时将事件发布到总线,并且您的应用程序应注册到该事件并在完成时执行操作。
总线允许您实现异步行为和简洁的设计。
我猜,@avendael 目前的回答有点错过了这个问题。
IntentService
扩展Service
并有一个主要限制 - 它按顺序而不是并行执行任务。但是 Volley,对于网络特别是,您可以与服务器建立多个连接。默认值为 4,但它是可配置的。
的另一个主要限制IntentService
,尽管这与此处发布的问题相关,但它非常适合started
服务类型而不是binding
它。我相信在这方面Volley
是相似的。IntentService
希望有帮助。