您好我正在开发一个Android应用程序。它是一种管式应用。
我面临一个问题。我的应用程序中有一个下载功能。当我开始下载一些内容然后在下载期间,如果我将创建任何其他网络连接,那么将花费更多时间。
对于下载,我使用了由服务处理的Asyntask。
对于简单的网络调用,我使用了Asyntask。
然后请建议我如何克服这个问题。
我的期望是如果下载正在进行中,那么如果我进行一些网络呼叫,那么此网络呼叫应该是高优先级。
请建议。
答案 0 :(得分:2)
如果您使用的是asynctask
,则可以尝试使用类似的方式设置当前线程的优先级。
protected void doInBackground() {
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
// download the things
}
Asynctasks
通常优先级较低。你可以在这里阅读更多相关信息:
http://www.androiddesignpatterns.com/2014/01/thread-scheduling-in-android.html
如果您使用了很多HTTP请求,我建议您使用库,例如 Volley 。这使您可以轻松设置请求队列,并跳过队列以获得高优先级项目。
您可以在此处详细了解:
http://arnab.ch/blog/2013/08/asynchronous-http-requests-in-android-using-volley/