Android 在非UI线程中读网络数据

/** 异步加载网络数据类 */
class PageTask extends AsyncTask<String, Integer, String> {
/** 加载数据进度条 */
ProgressDialog progressDialog;


public PageTask(Context context) {
progressDialog = new ProgressDialog(context);
progressDialog.setMessage("正在搜索中");
}


/** 在Background请求网络数据 */
@Override
protected String doInBackground(String... params) {
try {
return HttpQuery.httpGet(params[0]);
} catch (IOException e1) {
e1.printStackTrace();
} catch (JSONException e1) {
e1.printStackTrace();
}
return null;
}


@Override
protected void onCancelled() {
super.onCancelled();
}


@Override
protected void onPostExecute(String result) {
// 返回HTML页面的内容
System.out.println(result);
try {
// 对网络请求得到的数据进行解析

} catch (JSONException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
progressDialog.dismiss();


// 将加载的数据显示到界面

}


@Override
protected void onPreExecute() {
// 任务启动,可以在这里显示一个对话框,这里简单处理
// message.setText("onPreExecute()");
progressDialog.show();
}


@Override
protected void onProgressUpdate(Integer... values) {
// 更新进度


// progressDialog.setProgress(values[0]);
}

}



// 异步请求Server端页面数据
new PageTask(mapView.getContext()).execute(httpUrl);




你可能感兴趣的:(UI,android,String,网络,server,Integer)