zoukankan      html  css  js  c++  java
  • 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);
      }


        

  • 相关阅读:
    设置EntityFramework中decimal类型数据精度
    关于vue中的nextTick深入理解
    解决使用VS2013创建的MVC项目在VS2015中打开的各种问题
    mysql免安装版的下载与安装
    酷狗缓存文件kgtemp的加密方式
    PowerDesigner反向生成物理数据模型
    VISUAL STUDIO 2012下的OPENCV 2.4.7安装过程
    讲解DLL内容的比较详细的站点
    strcpy_s与strcpy的区别
    【原创】在VS2012中采用C++中调用DLL中的函数(4)
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5143982.html
Copyright © 2011-2022 走看看