我有 PHP 网络服务,我想把它叫做 throw AsyncTask
..在这个阶段我没有问题..我的问题是我想让一个类扩展AsyncTask
并传递给它uri
,以便在许多活动中多次webservices
调用它,但我不知道该怎么做并调用 asynctask .. 任何帮助.. 谢谢
这是我试图做的,但它不起作用
public class GetNetworkData extends AsyncTask<String, Void, String>{
String uri;
private OnPostExecuteListener mPostExecuteListener = null;
public static interface OnPostExecuteListener
{
void onPostExecute(String result);
}
GetNetworkData(
String Url,
OnPostExecuteListener postExecuteListener) throws Exception {
uri = Url;
mPostExecuteListener = postExecuteListener;
if (mPostExecuteListener == null)
throw new Exception("Param cannot be null.");
}
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
JSONObject param=null;
String result = null;
HttpClient httpClient = new DefaultHttpClient();
HttpHost httpHost = new HttpHost("192.168.3.111",80);
HttpPost httpPost = new HttpPost(uri);
httpPost.addHeader("Content-Type", "application/json; charset=utf-8");
try
{
//HttpEntity bodyEntity = new StringEntity(param.toString(), "utf8");
//httpPost.setEntity(bodyEntity);
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
BufferedReader reader = new BufferedReader(
new InputStreamReader(instream));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
sb.append(line + "\n");
result = sb.toString();
instream.close();
}
}
catch (Exception e) {
// TODO: handle exception
}
return result;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
if (mPostExecuteListener != null)
{
try {
JSONObject json = new JSONObject(result);
mPostExecuteListener.onPostExecute(result);
} catch (JSONException e){
e.printStackTrace();
}
}
}
}