0
진행률 대화 상자를 표시하고 runOnUiThread 안에 업데이트하려고하지만 진행률 막대가 표시되지 않습니다. runOnUiThread를 "new Thread"로 대체하면 정상적으로 작동합니다. 그러나 나는 그것을 시도 runOnUiThread 작업runOnUiThread의 ProgressDialog
여기내 코드, 내가 삭제 한 불필요한 코드
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 호출 (진행률 설정과 같은)이 호출되지 않습니다. 이는 메시지 대기열 – Selvin