public class MyTask extends AsyncTask<String,Void,String> {
private ICallBacks iCallBacks;
public MyTask(ICallBacks iCallBacks) {
this.iCallBacks = iCallBacks;
}
@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 );
iCallBacks.getJsonData( s );
}
public interface ICallBacks{
//得到json串
void getJsonData(String jsonstr);
}
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();
}
}
、、、、、、、、、、、、、、、、、、、、、、
在主类中调用 该方法
private void initData() {
MyTask myTask = new MyTask( new MyTask.ICallBacks() {
@Override
public void getJsonData(String jsonstr) {
Gson gson = new Gson();
ReaData1 reaData1 = gson.fromJson( jsonstr, ReaData1.class );
List<ReaData1.DataBean> data1 = reaData1.getData();
MyAdapter adapter = new MyAdapter( data1, MainActivity.this );
listView.setAdapter( adapter );
} } ); myTask.execute(
path );}