我有一个需要上传的Android应用程序,相对经常下载10-12MB之间的数据文件。鉴于我的应用程序在印度等国家更受欢迎,可能没有良好的互联网连接,我正在遵循以下限制
这是一个诗歌应用程序,我们下载新诗到用户手机,并在我们连接到互联网时将用户的诗歌上传到我们的服务器。
我理解使用“com.loopj.android.http.AsyncHttpClient;”对于沟通,但我想知道是否有更好的替代方案可以做到以下几点:
答案 0 :(得分:2)
是的,您应该使用服务,尤其是foreground service(以便在上传过程中显示通知)。此外,前台服务是not likely to be killed by Android:
......系统认为它是用户积极意识到的东西 当内存不足时,不会成为杀人的候选人。
对于下载,Android提供了一个名为DownloadManager的现成解决方案。它已经包括在连接丢失的情况下恢复下载的功能。
对于上传,没有相应的内容(至少据我所知)。您必须推出自己的解决方案,可能涉及Content-Range
HTTP标头。这取决于您的服务器,例如Google云端硬盘有API for this。另外看一下Resume file upload/download after lost connection (Socket programming)(虽然它是套接字,概念或多或少相同)。
另一个选择是使用SyncAdapter
执行此任务。见Transferring Data using Sync Adapters。我不确定这是否支持恢复。