AsyncTask 基础写法

47 阅读1分钟

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

initViews();
//将api传入
new Ac().execute(API);


}

private void initViews() {
list_view = findViewById(R.id.list_view);
}

class Ac extends AsyncTask<String,Void,String>{

@Override
protected void onPreExecute() {
super.onPreExecute();
}

@Override
protected String doInBackground(String... strings) {
try {
//获取从参数中获取api的下标
URL url = new URL(strings[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK){
InputStream inputStream = connection.getInputStream();
String s = inputStream2String(connection.getInputStream());
return s;
}

} catch (Exception e) {
e.printStackTrace();
}
return null;
}

private String inputStream2String(InputStream inputStream) throws IOException {
int len = 0;
byte[] b = new byte[1024];
StringBuffer stringBuffer = new StringBuffer();
while((len = inputStream.read(b))!=-1){
String s = new String(b,0,len);
stringBuffer.append(s);
}
return stringBuffer.toString();
}

@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//解析Gson
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
List<Bean.DataBean> data = bean.getData();

//设置适配器
MyAdapter myAdapter = new MyAdapter(MainActivity.this,data);
list_view.setAdapter(myAdapter);



}
}
}
---------------------
作者:币圈小韭菜
来源:CSDN
原文:blog.csdn.net/liu_qunfeng…
版权声明:本文为博主原创文章,转载请附上博文链接!