简单异步处理 获取bitmap 和json string

来源:互联网 发布:淘宝店铺装修在哪里 编辑:程序博客网 时间:2024/06/06 20:45
//返回Json String 的异步处理 内部类  第一个参数为 传入值  第三个参数为你需要的返回值//如果需要bitmap 则改为bitmapclass task extends AsyncTask<String, Void, String> {    @Override    protected void onProgressUpdate(Void... values) {        super.onProgressUpdate(values);        //下载进度 运行在主线程 values 是一个 数组类型        // 但是一般只有 一个元素  所以 用来更改进度条  的进度值 是 values[0]    }    @Override    protected void onPostExecute(String s) {        super.onPostExecute(s);        //返回的结果        Log.i("字符串", s);    }    @Override    protected void onPreExecute() {        super.onPreExecute();        //在 doInBackground 方法运行前做做准备工作        // 比如初始化 进度条  等等    }    @Override    protected String doInBackground(String... params) {        String json = "";        InputStream inputStream = null;        try {            URL url = new URL(params[0]);            HttpURLConnection connection = (HttpURLConnection) url.openConnection();            inputStream = connection.getInputStream();            //到此获取 输出流            BufferedInputStream bs = new BufferedInputStream(inputStream);            //获取流之后  如果需要bitmap            // bitmap=  BitmapFactory.decodeStream(bs);  返回bitmap             // 记得关闭流  返回 bitmap   然后 onPostExecute(Bitmap bitmap)             // 方法返回的数据就是 bitmap  可以更改主线程            json = readInputSteam(bs);            inputStream.close();            bs.close();        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return json;    }    private String readInputSteam(InputStream in) {        String json = "";        String result = "";        try {            InputStreamReader isr = new InputStreamReader(in, "utf-8");            BufferedReader br = new BufferedReader(isr);            while ((result = br.readLine()) != null) {                json += result;            }            isr.close();            br.close();            Log.i("字符串", json);        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return json;    }}
0 0
原创粉丝点击