可能重複:
Download a file with Android, and showing the progress in a ProgressDialogAndroid:使用「進度」GUI在後臺線程中從網絡加載數據?
我想從一個Web服務器的信息加載到我的應用程序。目前,我正在主線程中執行此操作,我讀過的操作非常糟糕(如果請求花費的時間超過5秒,則應用程序崩潰)。
因此,我想了解如何將此操作移至後臺線程。這是否涉及某種服務?
下面是代碼的樣本,我做服務器的請求:
// send data
URL url = new URL("http://www.myscript.php");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
sb.append(line + "\n");
}
wr.close();
rd.close();
String result = sb.toString();
Intent i = new Intent(searchEventActivity.this, searchResultsActivity.class);
i.putExtra("result", result);
startActivity(i);
我等待着要建立一個JSON字符串的響應,那麼我傳遞一個字符串到一個新的活動。這是一個及時的操作,而不是懸掛用戶界面,我想向用戶展示某種好的「進度」欄(即使其中一個圓形燈具旋轉燈也亮),而此URL業務正在發生後臺線程。
感謝您的任何幫助或指導教程的鏈接。
[與答案相同的問題(http://stackoverflow.com/questions/3028306/download-a-file-with-android-and-showing-progress-in-a-progressdialog)...已經有數百個(好的,很多)類似/相同的問題。 –