Android 不显示进度对话框



我试图在加载活动时显示一个ProgressDialog,但它没有显示。

下面是Activity onCreate

调用的方法
  private void loadBuilding(String[] b) {
        ProgressDialog pd = new ProgressDialog(this);
        pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        pd.setMax(6);
        pd.setTitle(R.string.loading);
        pd.show();
        LoadBuilding lb = new LoadBuilding();
        lb.initialize(this,  pd);
        lb.execute(b);
        try {
              lb.get();
        } catch (Exception e) {
              e.printStackTrace();
        } 
        pd.dismiss();
        if (building == null) 
              showError();
  }
LoadBuilding是一个AsyncTask,我在其中加载建筑并设置进度。

谢谢大家。

问题是progressDialog.dismiss()必须在:

  • 代码
  • 中显示的try/catch的catch
  • AsyncTask的onPostExecute方法

而且我使用的测试数据太少了,所以它上升和下降得太快了。

使用AsyncTask用于后台处理和前台更新进度。我认为这最适合你的任务。

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

尝试在Try and catch块

中添加progressDismiss()
try
 {
   pg.dismiss();
  }
Catch()
{
 }

相关内容

  • 没有找到相关文章

最新更新