Android asynctask使用

来源:互联网 发布:java判断质数的方法 编辑:程序博客网 时间:2024/05/01 19:47

继承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>();}@Overrideprotected String doInBackground(String...urls) {// TODO Auto-generated method stubString 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 返回的结果//这里面跟新uiif(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);  }


    

0 0