android HttpGet 另开线程获取网络数据问题
publicclassGetNetData{//get形式publicstaticStringgetResultForHttpGet(Stringurl)throwsCl...
public class GetNetData {
//get形式
public static String getResultForHttpGet(String url) throws ClientProtocolException, IOException
{
String result="";
HttpGet httpGet=new HttpGet(url);//
HttpResponse response=new DefaultHttpClient().execute(httpGet);
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity=response.getEntity();
result=EntityUtils.toString(entity, HTTP.UTF_8);
}
return result;
}
}
我在其它代码中调用GetNetData.getResultForHttpGet 来获取数据 但是网络不好的时候就会整个程序卡住 请问怎么办 在这个类中 我要怎么写才能让HttpGet 在其它线程中处理 并返回获取到的数据 展开
//get形式
public static String getResultForHttpGet(String url) throws ClientProtocolException, IOException
{
String result="";
HttpGet httpGet=new HttpGet(url);//
HttpResponse response=new DefaultHttpClient().execute(httpGet);
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity=response.getEntity();
result=EntityUtils.toString(entity, HTTP.UTF_8);
}
return result;
}
}
我在其它代码中调用GetNetData.getResultForHttpGet 来获取数据 但是网络不好的时候就会整个程序卡住 请问怎么办 在这个类中 我要怎么写才能让HttpGet 在其它线程中处理 并返回获取到的数据 展开
1个回答
推荐于2016-01-29
展开全部
简单点的话,用Thread+handler,另外可以考虑AsyncTask。以上这两种方法都要考虑android activity的生命周期,很有可能会导致memory leak。
推荐使用Loader实现AsyncTaskLoader
推荐使用Loader实现AsyncTaskLoader
追问
我的程序老多地方都调用了 getResultForHttpGet
() 我要是想在不改变其它代码情况下,就在这个getResultForHttpGet
中把他变成多线程中处理然后返回 return result;
不影响其它代码的运行是不是很困难呀 我是个新手不好意思 能帮我改一下吗 如果不能实现也请告诉我 我也就研究研究其它地方谢谢了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询