Je veux une barre de progression, mais à obtenir un spinner progressdialog

Je suis en utilisant un public AsynTask pour télécharger les données, et je suis en train d'afficher une barre de progression qui permettrait de voir la progression du téléchargement. Je pense que j'ai le bon code, mais tout ce que j'obtiens est un spinner progressdialog. Ai-je raté quelque chose? Pourquoi n'est-ce pas la barre de progression montrant? Voici le code.
Merci pour tous les pointeurs.

public class FileDownloader extends AsyncTask<String, Integer, Void>
{
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)) > 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 && _progressDia.isShowing())
_progressDia.dismiss();
}
}

OriginalL'auteur Samik R | 2010-07-24