0
Я пытаюсь показать диалог выполнения и обновить его внутри runOnUiThread , но индикатор выполнения никогда не показывался. когда я заменяю runOnUiThread на «новый поток», он отлично работает. Но я хочу, чтобы работать с runOnUiThreadProgressDialog в 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);
}
});
}
}
}
Это никогда не сработает ... Основы реализации пользовательского интерфейса: если вы блокируете поток пользовательского интерфейса с помощью цикла другие вызовы пользовательского интерфейса (например, процесс настройки) не будут вызываться до тех пор, пока вы не отпустите поток пользовательского интерфейса - поскольку очередь сообщений – Selvin