Como passar o valor do progresso do encadeamento para a atividade?

Estou tendo um problema de design ao enviar o valor da barra de progresso da classe chamada de uma classe Thread na Activity para atualizar a GUI, conforme a seguir

[O trecho de código não compila é apenas para explicar]:

Class A : Extend Activity {
  new Thread(new Runnable() 
    {
       public void run() 
       {
            B objB = new B();
            objB.DownloadFile();
        }
    }).start();
}

Class B {
    public void DownloadFile()
    {
       ... some work [preparing SOAP request]
       while(response.read())
       {
         //send calculated progress to Class A to update the progress value
       }

    }

}

Qualquer ajuda ou guia seria muito apreciada

questionAnswers(3)

yourAnswerToTheQuestion