在android中的计时器任务中更新ProgressDialog

在android中的计时器任务中更新ProgressDialog,android,Android,我使用此代码更新线程中的进度对话框,但不起作用!进展保持在0%。 我看到了AsyncTask代码,但我想用我的代码来完成。我该怎么做 final Timer timer=new Timer(); new Thread(new Runnable() { @Override public void run() { timer.schedule(new TimerTask() { @Override public void run() { ru

我使用此代码更新线程中的进度对话框,但不起作用!进展保持在0%。 我看到了AsyncTask代码,但我想用我的代码来完成。我该怎么做

final Timer timer=new Timer();
new Thread(new Runnable() {

    @Override
    public void run() {
    timer.schedule(new TimerTask() {
    @Override
    public void run() {

       runOnUiThread(new Runnable() {
            @Override
            public void run() {
                progress.setProgress((j/342)*100);

            }
        });
    }
}, 0, 50);
    }
}).start();

我相信这是由int/int分割引起的。由于您正在计算百分比,因此可以安全地假设乘法之前的结果始终小于1,并且在将其转换为int时将被截断,对于342以下的所有j值,您将得到0*100

试试这个:

progress.setProgress((int)(((float)j/342)*100));

j更新了它的值吗?是的,但是j在其他线程中更新,请尝试使用原子整数。