我应该使用什么来将大文件上传到服务器,即服务或意图服务。
我觉得Intententservice是上传大文件的正确方法,因为
1)创建自己的工作线程,
2)上传后无需停止服务自动停止。
如果我要去服务,我们确实有以下提到的优点:
1)我们可以在服务中创建一个线程来上传大文件
2)如果需要,我们可以在并行中执行任务
3)如果假设在上传操作系统时发生内存不足(OUM)可以重新创建我们的服务但是对于IntentService我们没有这个权限,我想
所以请各位建议您查看我应该使用哪些内容来上传大文件。
答案 0 :(得分:1)
尝试将Foreground服务用于长时间运行的任务。因为android比开始服务更优先考虑前台服务。在android客户端
中遵循以下逻辑设置块大小
httpurlConnection.setChunkedStreamingMode(缓冲区大小)
通过设置块大小,我们可以限制内部缓冲以避免OOM。
要获得实施简历上传选项的知识,请参阅 this
答案 1 :(得分:0)
我认为数据非常大(2GB),应该通过IntentService
上传。
为什么?如果您使用Service
,那么它将在并行中运行没有问题,但在任何情况下,如果您从后台终止您的应用,那么您的服务将立即停止。
如果你使用IntentService,那么它将继续它的任务直到它完成,如果你从后台杀死进程没问题。我认为这非常重要。
上面提到的最好的部分,它在不同的线程中工作,因此对MainThread
没有影响。
你应该使用IntentService,我的建议,祝你好运:)