//在点击事件中编辑AsyncTask匿名内部类
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 异步任务
// AsyncTask 抽象类
// <Params, Progress, Result>
new AsyncTask<String, Integer, String>(){
@Override
public void onClick(View v) {
// 异步任务
// AsyncTask 抽象类
// <Params, Progress, Result>
new AsyncTask<String, Integer, String>(){
//是一个线程方法 处理耗时操作
@Override
protected String doInBackground(String... params) {
String str="";
try {
URL url = new URL("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10");
//打开链接
HttpURLConnection conne=(HttpURLConnection) url.openConnection();
//设置时间
conne.setRequestMethod("GET");
conne.setReadTimeout(5000);
conne.setConnectTimeout(5000);
//获取响应码且判断其返回值是否是200
int responseCode = conne.getResponseCode();
if (responseCode==200) {
InputStream in = conne.getInputStream();
byte[] by=new byte[1024];
int len=0;
while ((len=in.read(by))!=-1) {
str+=new String(by,0,len);
}
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
}
//当doInBackground return以后执行
//主线程方法 可以更新UI
//主线程方法 可以更新UI
@Override
protected void onPostExecute(String result) {
Log.d("zzz", result);
Gson gson = new Gson();
f = gson.fromJson(result, JsonRootBean.class);
data = f.getNewslist();//返回集合
Myadpader myadpader = new Myadpader(data, MainActivity.this);
list.setAdapter(myadpader);
}
protected void onPostExecute(String result) {
Log.d("zzz", result);
Gson gson = new Gson();
f = gson.fromJson(result, JsonRootBean.class);
data = f.getNewslist();//返回集合
Myadpader myadpader = new Myadpader(data, MainActivity.this);
list.setAdapter(myadpader);
}
//在doInBackground 执行之前调用的方法 做一些数据的初始化工作
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}
//onProgressUpdate可是根据需求来调用 当调用了publishProgress(values)方法的时候 该方法就会被调用
//主线程方法 可以更新UI
@Override
protected void onProgressUpdate(Integer... values) {
pb.setProgress(values[0]);
super.onProgressUpdate(values);
}
}.execute(); //在execute的参数可写可不写
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}
//onProgressUpdate可是根据需求来调用 当调用了publishProgress(values)方法的时候 该方法就会被调用
//主线程方法 可以更新UI
@Override
protected void onProgressUpdate(Integer... values) {
pb.setProgress(values[0]);
super.onProgressUpdate(values);
}
}.execute(); //在execute的参数可写可不写