我有一个应用程序,它在用户单击某些按钮时执行FogBugz请求(特别是调用HTTP )。现在,我只是在应用程序启动时创建一个服务,然后调用该服务中的不同方法来完成请求。然而,当我这样做的时候,UI线程通常会挂起。我看过AsyncTask,但不确定它是否能完成我想要完成的任务。因为我需要立即解析HTTP请求返回的XML,所以我需要一个能够将该数据返回给UI线程的进程。ASyncTask能够做到这一点吗,或者有其他方法吗?
public static InputStream makeRequest(String httpRequest)
{
In a separate thread, run HTTP Request, get back and process, return inputstream
}
此方法由其他几个方法调用以执行HttpRequests。一旦返回inputstream,其他方法就会解析特定的信息。
发布于 2012-06-21 17:07:19
尝试使用AsyncTask。请转到此Link了解更多信息:
private class SyncIncoData extends AsyncTask<String, String, String> {
ProgressBar pb;
ProgressBar pbar;
@Override
protected String doInBackground(String... urls) {
for (int i = 0; i <= 100; i++) {
publishProgress(i);
}
return null;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
pb = (ProgressBar) findViewById(R.id.progressBarsync4);
pb.setVisibility(View.VISIBLE);
}
@Override
protected void onPostExecute(String result) {
pb = (ProgressBar) findViewById(R.id.progressBarsync4);
pb.setVisibility(View.INVISIBLE);
}
@Override
protected void onProgressUpdate(String... values) {
pbar = (ProgressBar) findViewById(R.id.progressBarpbar);
pbar.setProgress(Integer.parseInt(values[0]));
super.onProgressUpdate(values);
}
}
编写doinbackgroud()
内部http请求的程序
https://stackoverflow.com/questions/3391272
复制相似问题