嗨,我正在开发一个android应用程序。这是一个油管类型的应用程序。
我正面临着一个问题。我的应用程序中有一个下载功能。当我开始下载一些内容,然后在下载过程中,如果我将创建任何其他网络连接,那么它将花费更多的时间。
对于下载,我使用了一个由服务处理的异步任务。
对于简单的网络调用,我使用了异步任务。
那么请给我提个建议,我怎样才能克服这个问题。
我的期望是,如果下载正在进行,那么如果我进行一些网络调用,那么这个网络调用应该是高优先级的。
请提个建议。
发布于 2016-01-14 16:07:09
如果您使用的是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
如果你使用了很多超文本传输协议请求,我建议你使用一个库,比如Volley。这使您可以轻松地设置请求队列,并跳过高优先级项目的队列。
你可以在这里阅读更多关于它的内容:
http://arnab.ch/blog/2013/08/asynchronous-http-requests-in-android-using-volley/
https://stackoverflow.com/questions/34784159
复制相似问题