AsyncTask是处理同步异步,和Handler相似的东西
第一步:implementation ‘com.google.code.gson:gson:2.2.4’
导入Gson的依赖
并且加入权限<uses-permission android:name="android.permission.INTERNET"/>
第二步:创建类继承AsyncTask
AsyncTask里边有AsyncTask<*String,Void,List<Bean.ResultBean.DataBean*
>>这么几个参数,
然后实现里边的一个doInBackground
@Override
protected List<Bean.ResultBean.DataBean> doInBackground(String... strings) {
try {
URL url = new URL(strings[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setReadTimeout(5000);
if(connection.getResponseCode()==200){
//得到数据
String data = CharStreams.toString(new InputStreamReader(connection.getInputStream(), "UTF-8"));
//得到Gson对象
Gson gson = new Gson();
//解析
Bean bean = gson.fromJson(data, Bean.class);
//将数据返回出去
return bean.getResult().getData();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
第三步:MainActivity里边写一个点击事件
findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AsyncTaskUtils().execute(path);
}
});