2014-01-06 128 views
1

我会跟下面的感谢您的帮助:Android的3G连接延迟

问:
我期待急于3G连接,使之立即连接。

说明: 我建立一个应用程序(Android版),使用HttpClient的连接到我的服务器,和亚马逊的AWS API连接到各种亚马逊服务。

我注意到有时候,3g中的连接建立需要很多时间,而实际上Android似乎在发送GET/POST /任何请求之前等待了一段时间,甚至没有尝试。

很少澄清:

  • 3G的连接是否正常(良好的信号),问题是仅使用3G。
  • 尝试连接到使用浏览器(如船浏览器)上网的时候
  • ,连接似乎“唤醒”,并在状态栏上的绿色&橙色箭头再次开始照明。和...浏览器的作品。有时我的请求也会被“唤醒”。
  • 我的请求可以工作,但通常需要一段时间(至少1分钟),直到他们真正开始。

如果需要,我可以放一些代码,但它看起来与我的操作无关,它只是Android的工作原理(也许它在启动3g连接之前等待很多请求?),应用程序(如小船浏览器)强制连接发送他们的请求,或者只是刷新3g连接。

谢谢你这么多

+0

好吧,我发现一件事(可能会很明显)。 如果有另一个尝试使用连接的AsyncTask(不知道任何其他线程)正在运行,所有其他连接任务将不会启动。 这就是为什么它在WIFI上“工作”。响应(或在我的情况“无响应”/超时)来得快得多。 当前的修复是对连接(httpClient)进行超时。 –

回答

0

好吧,我发现足够的信息来清除此了!

AsyncTasks作为连接线程最好的办法是避免它们显然 并使用Google Volley代替。

请看看这个链接,了解有关AsyncTasks的细微差别: http://www.jayway.com/2012/11/28/is-androids-asynctask-executing-tasks-serially-or-concurrently/
(我发现在一个单独的问题,这个链接,但我不能找到它,抱歉)。

而且看这个链接来了解什么是谷歌凌空它来实现它一个多线程的连接如何更容易:
https://developers.google.com/events/io/sessions/325304728

So..To 答案问题:
1。在某些/大多数情况下,您的AsyncTasks不会同时运行。
2.为了“强制”多线程连接,请使用Volley(可以配置为顺序运行btw)或读取上面有关AsyncTask的链接以“启用”它。