我有一个下载文件的服务。此文件最大可达200Mb。下载此文件时,我无法执行任何其他http请求,因为连接已完全使用。我可以限制下载速度,以便仍然可以发送和接收一些小的后台请求吗?
答案 0 :(得分:-1)
下载文件的代码是否在完全Thread
中运行?
使用Service
不意味着您的代码将在单独的Thread
中运行。实际上,所有Service
生命周期方法(如onCreate()
,onBind()
和其他方法)都会在主应用程序主题中调用。如果您在主线程中从网络下载某些内容,则可能是阻止其他请求的原因。无论如何,所有与网络/数据库/文件一起使用的代码都应该在不同的线程中执行。
如果您使用单独的线程进行网络操作,那么当您在数据的每个部分之间插入Thread.sleep(10)
时,可以从流中重新插入数据。