我AsyncTask
調用Web服務。整個視圖掛起,直到任務在後臺完成。我需要讓視圖不像這樣掛。的Android的AsyncTask掛認爲
public ArrayList bindListView() {
ArrayList listViewItems = null;
try {
listViewItems = new NewsPage.GetNews(getActivity(),lastid).execute().get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return listViewItems;
}
private class GetNews extends AsyncTask<Void, Void, ArrayList> {
Activity activity;
public GetNews(Activity activity) {
this.activity = activity;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected ArrayList<NewsListItem> doInBackground(Void... arg0) {
HttpHandler sh = new HttpHandler();
Log.i("xxxxy", lastid + "");
String jsonStr = sh.makeServiceCall(url + lastid);
if (jsonStr != null) {
try {
JSONArray news = new JSONArray(jsonStr);
for (int i = 0; i < news.length(); i++) {
NewsListItem newsitem = new NewsListItem();
JSONObject c = news.getJSONObject(i);
String title = c.getString("title");
String excerpt = c.getString("excerpt");
String imageUrl = c.getString("thumbnailURL");
imageUrl = genurl + imageUrl;
newsitem.title = title;
newsitem.content = excerpt;
newsitem.imageUrl = imageUrl;
newsitem.id = c.getString("id");
newsList.add(newsitem);
}
} catch (final JSONException e) {
}
} else {
}
return newsList;
}
@Override
protected void onPostExecute(ArrayList result) {
super.onPostExecute(result);
}
}
張貼代碼.. –
張貼您的代碼請... –