//返回Json String 的异步处理 内部类 第一个参数为 传入值 第三个参数为你需要的返回值 //如果需要bitmap 则改为bitmap class 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; } }
简单异步处理 获取bitmap 和json string
最新推荐文章于 2023-02-02 08:00:10 发布