使用AsyncTask实现网络数据的异步访问

    在调用时使用: new NewsAsyncTask().execute(URL); 

  

//实现网络的异步访问
//1.string请求网址2.记录中间过程3.返回的json被解析得到的List<>;
class NewsAsyncTask extends AsyncTask<String, Void,List<NewsBean> >{
	//处理后台执行的任务,在后台线程执行
	@Override
	protected List<NewsBean> doInBackground(String... params) {
		//params:请求网址
		// TODO Auto-generated method stub
		return getJsonData(params[0]);//返回一个List<>,而后被onPostExecute()调用;
	}

	// 后台任务执行完之后被调用,在ui线程执行  
	@Override
	protected void onPostExecute(List<NewsBean> newsBeans) {
		// TODO Auto-generated method stub
		super.onPostExecute(newsBeans);
		NewsAdapter adapter = new NewsAdapter(MainActivity.this,newsBeans);
		mListView.setAdapter(adapter);
	}
        // 在doInBackground(Params...)之前被调用,在ui线程执行
        protected void onPreExecute() {
                super.onPreExecute();  
        }
        // 在ui线程执行  
        protected void onCancelled() {
                super.onCancelled();  
        }
	
}
相关文章
相关标签/搜索