일부 정보를로드하는 동안 진행중인 AsyncTask에 ProgressDialog를 넣으려고합니다. 문제는 시작이 잘되지만 갑자기 회전이 멈추며 한 순간에 앱이 더 이상 작동하지 않는 것 같습니다. 모든 정보가로드되고 정보가 제대로 표시 될 때까지 방적이 스택됩니다. 여기에 내가 사용하고있는 AsyncTask를 수 있습니다 :AsyncTask의 progressDialog가 회전하지 않음
public class LoadCarsTask extends AsyncTask<String, Car, List<Car>>{
private SearchFragmentActivity sma;
private ListFragment fragment;
public LoadCarsTask (ListFragment fragment){
this.fragment = fragment;
dialog = new ProgressDialog(fragment.getActivity());
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
adapter = new SearchCarListAdapter(SearchCarListActivity.this.getActivity(), showedCars, showedDistance, showedReviews, showedPhotos);
dialog.setMessage("Finding Cars...");
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.show();
}
public SearchFragmentActivity getSma() {
return sma;
}
public void setSma(SearchFragmentActivity sma) {
this.sma = sma;
}
@Override
protected List<Car> doInBackground(String... params) {
maxPerHour = Double.parseDouble(filterparams[0]);
maxPerKm = Double.parseDouble(filterparams[1]);
maxDistance = Double.parseDouble(filterparams[2]);
longitude = Double.parseDouble(filterparams[3]);
latitude = Double.parseDouble(filterparams[4]);
URL url;
try {
//A long calculation goes here
return cars;
}
@Override
protected void onProgressUpdate(Car... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(List<Car> result) {
super.onPostExecute(result);
SearchFragmentActivity.setCars(cars);
sfa.setUpDistances();
distance = SearchFragmentActivity.getDistances();
setUpReviews();
setUpPhotos();
while (carsCount<carsNumber && carsCount<cars.size()){
showedCars.add(cars.get(carsCount));
showedDistance.add(distance.get(carsCount));
showedPhotos.add(photos.get(carsCount));
showedReviews.add(reviews.get(carsCount));
carsCount++;
}
adapter = new SearchCarListAdapter(SearchCarListActivity.this.getActivity(), showedCars, showedDistance, showedReviews, showedPhotos);
adapter.setCurrentLocation(loc);
setListAdapter(adapter);
if(dialog.isShowing())
dialog.dismiss();
//sma.showAvailableCarsOnMap();
}
}
}
에 대한 this 링크 그것은 내게 만드는이 같은 ...이 회전을 시작하지만, 갑자기 멈추고 결국 사라질 때까지 막히고 모든 데이터가 나타납니다. –