Android asynctask使用
继承asynctask,有三个參数
三个參数的含义是第一个表示输入參数。第二个为progress,表示当前的进度,第三个为doInbackground
返回值
须要一个參数传入url,返回一个result结果,假设没有网络则返回空
import java.io.InputStream; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import mybook.bookInfo; import mybook.httpget; import mybook.jsontest; import android.os.AsyncTask; import android.util.Log; import android.widget.LinearLayout; import android.widget.ListView; import hdu.m12306.zzy.*; import hdu.m12306.zzy.listview.myadapter2; public class mytask extends AsyncTask<String ,Void,String > { private LinearLayout li; private ListView listview; private myadapter2 myadapter; private InputStream in; private List<LinkedHashMap> data_set; private httpget httpget; //须要一个參数传入url,返回一个result结果,假设没有网络则返回空 //三个參数的含义是第一个表示输入參数。第二个为progress,第三个为doInbackground //返回值 public mytask(ListView listview,myadapter2 adapter,httpget httpget){ this.listview=listview; this.myadapter=adapter; //this.in=in; this.httpget=httpget; new ArrayList<LinkedHashMap>(); } @Override protected String doInBackground(String...urls) { // TODO Auto-generated method stub String response=null; //urls为字符串数组 String geturl=new String(); for(String url:urls) geturl+=url; Log.e("geturl", geturl); //httpget http=new httpget(geturl,in); //http.init(); InputStream myin=httpget.get_IN(); //读取到文件结束,会有问题 //证书文件读取结束 response=httpget.get_reponse(myin); return response; } protected void onPostExecute(String result){ //doinBakcground 返回的结果 //这里面跟新ui if(result!=null){ jsontest json=new jsontest(result); json.init(); data_set=json.get_data(); myadapter.set_dataset(data_set); // listview.setAdapter(myadapter); } } }
在以下的代码中更新
public void on_fresh(final View v){ mytask task=new mytask(listview,myadapter,http); Log.e("onfresh", url); String []params=new String[]{url}; task.execute(params); }