我正在尝试从服务器下载 XML 文件,并使用 XMLpull 解析器来处理它,但它不会每次都下载整个数据。即使我尝试等待下载它(线程睡眠)。您知道为什么会发生这种情况或如何解决问题吗?这是我下载文件的功能
/*XML read*/
private String downloadUrl(String myurl) throws IOException {
InputStream is = null;
int len = 100000;
try {
URL url_get = new URL(myurl);
HttpURLConnection conn = (HttpURLConnection) url_get.openConnection();
conn.setReadTimeout(15000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
// Starts the query
conn.connect();
is = conn.getInputStream();
String contentAsString = readIt(is, len);
return contentAsString;
// Makes sure that the InputStream is closed after the app is
// finished using it.
} finally {
if (is != null) {
is.close();
}
}
}
public String readIt(InputStream stream, int len) throws IOException, UnsupportedEncodingException {
Reader reader = null;
reader = new InputStreamReader(stream, "UTF-8");
char[] buffer = new char[len];
reader.read(buffer);
return new String(buffer);
}
我正在使用线程来启动功能。
这是线程:
Thread thread = new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(100);
while (while_start)
{
if(While_getadat){
try {
get_xml = downloadUrl(URL_IMEI);
Thread.sleep(2000);
Global_XML_data=red_xml(get_xml);
Thread.sleep(1000);
While_getadat=false;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
更新
有趣的事情是在调试模式下程序正常工作我得到了每一条数据