Android Progressbar no se actualiza

Tengo un problema en la actualización de la barra de progreso. Estoy actualizando la barra de progreso en el subproceso separado y la variable de la que depende el progreso de la barra de progreso (que es una variable de clase) se actualiza en otro hilo. Entonces, el diálogo de progreso muestra, pero siempre el 0% no actualiza el progreso. Ayudame por favor.

public void setProgressbar()
{
    progressBar = new ProgressDialog(context);
    progressBar.setCancelable(true);
    progressBar.setMessage("File downloading ...");
    progressBar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    progressBar.setProgress(0);
    progressBar.setMax(100);
    progressBar.show();

    Thread thread = new Thread()
    {
        public void run()
        {


             while(progressBar.getProgress() < 100)
             {
                Log.v("progressbar", getProgress()+"");
                 progressBar.setProgress(getProgress());
                 try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
             }
        }
    };
    thread.start();

Actualizar código de valor

  Thread thread = new Thread()
   {
        public void run()
      {
      .
      .
      .
 while((bytesRead = is.read(bytearray, 0, bytearray.length)) != -1)
                    {
                     bos.write(bytearray, 0, bytesRead);
                     totaldownload = totaldownload + bytesRead;
                     Log.v("downloadign ", totaldownload+"");
                    // progressBar.setProgress((int) ((totaldownload/sizeoffile) * 100));
                    }
                    bos.close();
.
.
.
};
thread.start()

Y el método getPrgoress

 public int getProgress()
    {
        return (int) ((totaldownload/sizeoffile) * 100);
    }

Respuestas a la pregunta(3)

Su respuesta a la pregunta