一、自定义MyTask
public class MyTask extends AsyncTask<String,Void,String> { private IcallBack icallBack; public MyTask(IcallBack icallBack) { this.icallBack = icallBack; } @Override protected String doInBackground(String... strings) { String str=""; try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setConnectTimeout(5000); urlConnection.setReadTimeout(5000); int responseCode = urlConnection.getResponseCode(); if (responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); str=toJson(inputStream); } } catch (Exception e) { e.printStackTrace(); } return str; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); icallBack.getJsonData(s); } public interface IcallBack{ void getJsonData(String s); } private String toJson(InputStream inputStream) { StringBuilder builder = new StringBuilder(); String string; InputStreamReader in = new InputStreamReader(inputStream); BufferedReader reader = new BufferedReader(in); try { while ((string=reader.readLine())!=null){ builder.append(string); } } catch (Exception e) { e.printStackTrace(); } return builder.toString(); }
}
二、调用
MyTask myTask = new MyTask(new MyTask.IcallBack() { @Override public void getJsonData(String s) { Gson gson = new Gson(); RequestData requestData = gson.fromJson(s, RequestData.class); List<RequestData.DataBean> list = requestData.getData(); if (pagetype==1){ MainActivity.this.data.clear(); } MainActivity.this.data.addAll(list); setgvadapter(); plv.onRefreshComplete(); } }); myTask.execute(urlpath);