2016-01-14 33 views
2

您好我正在一个Android应用程序。它是你的管子类型的应用程序。在Android应用程序Http网络问题

我正面临一个问题。我的应用中有一个下载功能。当我开始下载一些内容然后下载时,如果我将创建任何其他网络连接,那么它将需要更多的时间。

对于下载我使用了由服务处理的Asyntask。

和简单的网络调用我用了Asyntask。

那么请好心劝我,我该如何克服这个问题。

我的期望是,如果下载正在进行,那么如果我做一些网络通话,那么这个网络通话应该是高优先级。

请建议。

+0

从这里得到一些想法:http://stackoverflow.com/questions/22787482/schedule-multiple-async-task-in-android – Developer

+1

@Developer我使用了Executor并解决了我的问题。谢谢 。 –

回答

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请求,我也不过建议你使用一个库,像凌空。这使您可以轻松设置请求队列,并跳过高优先级项目的队列。

你可以阅读更多有关,在这里:

http://arnab.ch/blog/2013/08/asynchronous-http-requests-in-android-using-volley/

+0

嗨,我没有试过你的代码,但使用Executor,它解决了我的问题。但当然,我也会尝试你的代码。 –