title: I want a progressbar but get a spinner progressdialog
body: <p>I am using a public AsynTask to download data, and I am trying to show a progress bar which would show the download progress. I think I have the code right, but all I get is a spinner progressdialog. Am I missing something? Why isn't the progress bar showing up? Here is the code.
  Thanks for any pointers.</p>
  
  <pre><code>public class FileDownloader extends AsyncTask&lt;String, Integer, Void&gt;
  {
  private Context _appContext;
  private HttpURLConnection _urlConn;
  private ProgressDialog _progressDia = null;
  private DialogInterface.OnCancelListener _progDiaCancelListener = new DialogInterface.OnCancelListener()
  {
      /**
       * When the progress dialog is canceled, stop the GET request.
       */
      public void onCancel(DialogInterface dialog) 
      {
          FileDownloader.this.cancel(true);
      }
  };
  
  /**
   * Constructor.
   * @param appContext
   */
  public FileDownloader(Context appContext)
  {
      _appContext = appContext;
      _progressDia = new ProgressDialog(_appContext, ProgressDialog.STYLE_HORIZONTAL);
      _progressDia.setMax(100);
      _progressDia.setTitle(_appContext.getString(R.string.diaHeader1));
      _progressDia.setMessage(_appContext.getString(R.string.diaBody1));
      _progressDia.setCancelable(true);
      _progressDia.setIndeterminate(false);
      _progressDia.setOnCancelListener(_progDiaCancelListener);
  }
  
  // Runs on the UI thread
  @Override
  protected void onPreExecute() 
  {
           _progressDia.setProgress(0);
           _progressDia.show();                           
  }
  
  @Override
  protected Void doInBackground(String... args) 
  {
      String dloadURL = args[0],
             saveLoc = args[1];
              ...
              ...
          while((len = input.read(buf)) &gt; 0)
          {
              output.write(buf, 0, len);
              total += len;
              publishProgress((int)total * 100/lenghtOfFile);
          }
              ...
              ...
      }
      catch(SocketTimeoutException ex)
      {   
      }
      finally
      {
           ...
  }
  
  // This is executed on main UI thread.
  @Override
  protected void onProgressUpdate(Integer... values) 
  {
       _progressDia.setProgress(values[0]);
  }
  
  @Override
  protected void onCancelled() 
  {
           ...
  }
  
  // This is executed on main UI thread.
  @Override
  protected void onPostExecute(Void result) 
  {
          removeProgressDialog();
          ...
  }
  
      /**
       * Remove the message dialog, if still showing.
       */
      private void removeProgressDialog()
      {
          if(_progressDia != null &amp;&amp; _progressDia.isShowing())
          _progressDia.dismiss();
      }
  }
  </code></pre>