【发布时间】:2016-06-14 15:04:34
【问题描述】:
我正在尝试显示进度对话框并在 runOnUiThread 中更新它 但进度条从未显示。当我用“新线程”替换 runOnUiThread 时,它工作正常。但我希望它与 runOnUiThread 一起工作
这是我的代码,我已经删除了不必要的代码
public class test extends Activity {
private ProgressDialog progress;
Handler progressBarHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
testing();
}
public void testing() {
progress=new ProgressDialog(this);
progress.setMessage("Saving Progress");
progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progress.setProgress(0);
progress.setMax(100);
progress.setCancelable(false);
progress.show();
runOnUiThread(new Runnable() {
@Override
public void run() {
//do some work
for (int i =0; i<100;i++){
//some work
progressBarHandler.post(new Runnable() {
@Override
public void run() {
progress.setProgress(finalCount);
}
});
}
}
}
【问题讨论】:
-
它将永远无法工作... UI 实现基础知识:如果您使用循环阻止 UI 线程,则在您释放 UI 线程之前不会调用任何其他 UI 调用(如设置进度) - 因为消息队列
标签: java android multithreading progressdialog