一:AsyncTask 的使用
(1)activity_main.xml
(2)MainActivity.java
public class MainActivity extends Activity {
private ProgressBar asyncPb = null;
private TextView tvInfo = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvInfo = (TextView)findViewById(R.id.tvInfo);
String params = "Welcome to here";
new MyAsyncTask().execute(params);
}
private class MyAsyncTask extends AsyncTask{
@Override
protected void onPreExecute() {
//做一些预处理
asyncPb = (ProgressBar)findViewById(R.id.asyncPb);
asyncPb.setVisibility(View.VISIBLE);
}
@Override
protected String doInBackground(String... params) {
//执行耗时操作,网络任务、文件操作、数据库操作、复杂计算操作
int myProgress = 0;
int length = params[0].length();
for(int i=1; i<=length; i++){
myProgress = i;
//模拟耗时操作
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
publishProgress((int)((myProgress/(float)length)*100));
}
//它将传递给onPostExecute
return params[0];
}
@Override
protected void onProgressUpdate(Integer... values) {
//更新进度条
asyncPb.setProgress(values[0]);
tvInfo.setText("已加载:"+(values[0])+"%");
}
@Override
protected void onPostExecute(String result) {
//更新UI
tvInfo.setText("加载完成:"+result);
}
}
}
二:HttpGet
public static String getRequest(String url){
String result = "";
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
try {
HttpParams httpParams = client.getParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 3000);
HttpConnectionParams.setSoTimeout(httpParams, 5000);
HttpResponse response = client.execute(get);
if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
result = EntityUtils.toString(response.getEntity()).trim();
}
} catch (Exception e) {
//连接超时
}
return result;
}
三:Volley POST
private RequestQueue rQueue = null;
rQueue=WzhVolley.getRequestQueue();
StringRequest postRequest= newStringRequest(
Request.Method.POST,
URL,
createDoSuccess(),
createDoError()){protected MapgetParams(){
Map params = new HashMap();
params.put(key,value);returnparams;
}
};
postRequest.setRetryPolicy(newDefaultRetryPolicy(WR.DEFAULT_TIMEOUT_MS, WR.DEFAULT_MAX_RETRIES, WR.DEFAULT_BACKOFF_MULT));
rQueue.add(postRequest);private Response.ListenercreateDoSuccess(){return new Response.Listener(){public voidonResponse(String arg0){//...
JSONObject jsonObj = newJSONObject(arg0);//or
JSONArray jsonArr = newJSONArray(arg0);
}
};
}privateResponse.ErrorListener createDoError(){return newResponse.ErrorListener(){public voidonErrorResponse(VolleyError arg0){//...
}
};
}