Android Progressbar не обновляется
У меня проблема с обновлением индикатора выполнения. Я обновляю индикатор выполнения в отдельном потоке, а переменная, от которой зависит прогресс выполнения (которая является переменной класса), обновляется в другом потоке. Таким образом, диалог прогресса показывает, но всегда 0%, не обновляя его прогресс. Помоги мне, пожалуйста.
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();
Обновить код значения
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()
И метод getPrgoress
public int getProgress()
{
return (int) ((totaldownload/sizeoffile) * 100);
}