android - AsyncTask 中的 ProgressDialog 停止旋转

标签 android android-progressbar

我试图将 ProgressDialog 放入 AsyncTask 中,并在加载一些信息时旋转。问题是它开始时很好,但突然停止旋转,有那么一刻,应用程序似乎不再工作了。旋转只是得到堆栈,直到加载所有信息后它消失并且信息正确显示。这是我正在使用的 AsyncTask:

   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(); 
    }

}


  }

最佳答案

    private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
     protected Long doInBackground(URL... urls) {
         int count = urls.length;
         long totalSize = 0;
         for (int i = 0; i < count; i++) {
             totalSize += Downloader.downloadFile(urls[i]);
             publishProgress((int) ((i / (float) count) * 100));
             // Escape early if cancel() is called
             if (isCancelled()) break;
         }
         return totalSize;
     }

     protected void onProgressUpdate(Integer... progress) {
         setProgressPercent(progress[0]);
     }

     protected void onPostExecute(Long result) {
         showDialog("Downloaded " + result + " bytes");
     }
 }

检查this链接了解更多信息

关于android - AsyncTask 中的 ProgressDialog 停止旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14562905/

相关文章:

android - facebook android sdk中使用的facebook api版本

java - Android Studio 签名 APK - 缺少强制 list 版本属性

android - java.lang.NoClassDefFoundError : javax. 微版本.io.Connector

android - 如何更改圆形进度条的颜色?

android - 显示带有对话进度和 webchrome 客户端的 webview

android - 如何让 ProgressBar 停止旋转?

android - 如何在TextView中显示数据

android - 有没有一种方法可以将 Pinterest 与 android 应用程序集成

Android ProgressDialog "Spinner"消失(不显示)

android - 进度对话框 setContentView 在 onCreateDialog DialogFragment 中不起作用