3 回答
TA贡献1836条经验 获得超13个赞
使用AsyncTask,以使网络请求不会阻止UI线程。该NetworkOnMainThreadException因为API版本11,这就是为什么它是只显示了3.0和最多的原因进行了介绍。
private class NetworkTask extends AsyncTask<String, Void, HttpResponse> {
@Override
protected HttpResponse doInBackground(String... params) {
String link = params[0];
HttpGet request = new HttpGet(link);
AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
try {
return client.execute(request);
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
client.close();
}
}
@Override
protected void onPostExecute(HttpResponse result) {
//Do something with result
if (result != null)
result.getEntity().writeTo(new FileOutputStream(f));
}
}
要简单地调用此线程,请执行此操作。
new NetworkTask().execute(linkk);
看看这篇写在Android开发人员网站上的文章。它更详细地说明了如何编写应用程序以处理线程。
添加回答
举报