Ciao a tutti.
Sto iniziando, finalmente, a sviluppare per Android e, almeno finora, le soddisfazioni sono molte. 
C'è, però, un problema che non riesco a risolvere.
Ho scritto un AsyncTask che usa una ProgressDialog per visualizzare la progressione del download di un file: la progress dialog viene correttamente visualizzata e chiusa alla fine, il file viene correttamente scaricato, ma non viene visualizzato alcun progresso.
Ho navigato in lungo ed in largo, consultato tutta la documentazione (che, per quanto riguarda ProgressDialog, è assolutamente assente), consultato la guida ufficiale, letto decine di post su SO e tutto ciò che ho trovato sono esempi pressoché identici al codice che ho sviluppato io.
Posto il codice:
codice:
public class MyActivity extends Activity {
private class DownTask extends AsyncTask<String, Integer, String> {
private Context ctx;
private ProgressDialog dialogDownload;
public DownTask(Context ctx) {
this.ctx = ctx;
}
@Override
public void onPreExecute() {
dialogDownload = new ProgressDialog( ctx );
dialogDownload.setMessage("Download del file in corso...");
dialogDownload.setProgressStyle( ProgressDialog.STYLE_HORIZONTAL );
dialogDownload.setIndeterminate( false );
dialogDownload.setMax( 100 );
dialogDownload.show();
}
@Override
protected String doInBackground(String... fileUrl) {
String myFilePath = ...;
String localPath = Environment.getExternalStorageDirectory().getPath() + myFilePath;
InputStream input = null;
OutputStream output = null;
try {
// Mi connetto al URL
URL url = new URL( fileUrl[0] );
URLConnection connection = url.openConnection();
connection.connect();
// Ottengo la dimensione del file da scaricare
int fileLength = connection.getContentLength();
// Apro gli stream di input/output
input = new BufferedInputStream( url.openStream() );
output = new FileOutputStream( localPath );
// Scarico il file a blocchi di 1024 byte
byte data[] = new byte[1024];
int total = 0;
int count;
int lastProgress = 0;
while ((count = input.read(data)) != -1) {
total += count;
Integer byteProgress = total * 100 / fileLength;
if (byteProgress != lastProgress) {
publishProgress( byteProgress );
lastProgress = byteProgress;
}
output.write(data, 0, count);
}
// Effettuo il flush
output.flush();
} catch (Exception e) {
Log.e("MyActivity.DownTask", "Errore in download del file", e);
} finally {
if (output != null) {
try { output.close(); } catch (Exception e) { }
}
if (input != null) {
try { input.close(); } catch (Exception e) { }
}
}
return localPath;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
dialogDownload.setProgress( values[0] );
}
@Override
protected void onPostExecute(String path) {
dialogDownload.dismiss();
// Lavora col file
...
}
}
...
private void iniziaDownload() {
String myFileUrl = ...;
DownTask dwn = new DownTask( this );
dwn.execute( myFileUrl );
}
...
}
Avviando l'app sull'emulatore funziona tutto (e la progress bar avanza correttamente). Avviando l'app sul mio Galaxy SII, invece, ottengo il comportamento descritto sopra: la dialog appare, rimane ferma (a 0) per tutto il processo di download e viene chiusa alla fine. 
Capita anche a qualcun altro?
Ciao.