java - 在非常慢的 2G 互联网上下载 xml 数据

标签 java android xml

我已经成功编写了一个应用程序,该应用程序每 10 秒跟踪一次分配的系统服务(GPS 位置、网络位置、wifi、neighbouringcellinfo、传感器 ....),效果很好,但是一旦我限制了我的手机上的互联网仅使用 2G 并关闭 Wifi 我得到该应用程序仍然可以运行但开始滞后。

我试图找出问题的根源,我注意到它来自以下代码行:

XmlPullParser receivedData = XmlPullParserFactory.newInstance()
                    .newPullParser().setInput(xmlUrl.openStream(), null); return receivedData; 

一旦我在我的 Activity 中删除这几行代码,该应用程序就可以正常运行,但鉴于它们对我的应用程序至关重要,我非常希望它们可以正常运行(它们已经在运行)但不会造成延迟.

谁能帮帮我?

我已经打印了 XML 文件的解析结果,它是正确的,所以我唯一的问题是应用程序滞后。

我要处理的典型 XML 文件如下所示:

<rsp stat="ok">
<cell lat="49.88415658974359" lon="8.637537076923078" mcc="262" mnc="7" lac="41146" 
cellid="42404" averageSignalStrength="-79" samples="39" changeable="1"/>
</rsp>

最佳答案

2g 是一些非常慢的连接。更糟糕的是天线的“预热”。在接收到第一位之前,它可能会持续长达 30 秒。 (而且你真的无能为力,因为这完全是关于物理学的)。

所以你唯一能做的就是在后台线程中加载文件。这将使应用程序响应(如果您不需要及时的数据)。

关于java - 在非常慢的 2G 互联网上下载 xml 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23838349/

相关文章:

java - 电话应用程序 : item cannot be resolved or is not a field

java - Gradle Task替换.java文件中的字符串不起作用

java - 为什么我可以将 web 服务用作 java 应用程序,但不能用于 struts2

java - Eclipse 无法定位文件 - File 对象使用上出现 FileNotFoundException

Android:从 PhoneGap 应用打开 Play 商店链接

c - GMime 多部分内容

java - Mockito - 当与 RxJava 2 .retry() 安排时

java - Google Now 更改命令

android - 导航栏后面的 Mediacontroller

JAVA SAX 解析器拆分对 characters() 的调用