1.定义AsyncTast类
//AsyncTask<excute的参数,更新progress的参数,doinBackground返回的结果>
class loadNewsAsyncTask extends AsyncTask<String, Void, List<NewsBean>>{
//预加载
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}
//真正的异步线程-用于读取,加载,转换等耗时操作(其他方法都属于主线程,主线程才可以更新UI)
@Override
protected List<NewsBean> doInBackground(String... params) {
// TODO Auto-generated method stub
List<NewsBean> list=getJsonData(params[0]);
return list;
}
//更新进度,通常在doInBackground中调用publishProgress(values);更新
@Override
protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
//doInBackground结束后自动调用
@Override
protected void onPostExecute(List<NewsBean> result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
adapter=new NewsAdapter(MainActivity.this, result);
listView.setAdapter(adapter);
}
}
2.执行AsyncTast线程
loadNewsAsyncTask tast=new loadNewsAsyncTask();
tast.execute(url);