내가 만드는 중입니다. 간단한 진행 막대가 10 초 동안로드됩니다. 그래서 내가 원하는 것은이 같은 루프 - 임의의 루프없이 진행 상황을 처리 할 수 Android : 업데이트 UI가있는 루프의 시간 지연
for(int i = 1; i <= 100; i++) {
progressDialog.setProgress(i);
//100ms delay
}
감사
내가 만드는 중입니다. 간단한 진행 막대가 10 초 동안로드됩니다. 그래서 내가 원하는 것은이 같은 루프 - 임의의 루프없이 진행 상황을 처리 할 수 Android : 업데이트 UI가있는 루프의 시간 지연
for(int i = 1; i <= 100; i++) {
progressDialog.setProgress(i);
//100ms delay
}
감사
다음 코드가 도움이 될 수 있습니다.
public void startProgress(View view) {
// Do something long
Runnable runnable = new Runnable() {
@Override
public void run() {
for (int i = 0; i <= 10; i++) {
final int value = i;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
progressDialog.setProgress(value);
}
});
}
}
};
new Thread(runnable).start();
}
그것은 AsyncTask를를 사용하는 것이 좋습니다.
당신은 0으로 루프 인덱스를 초기화 할 목적 preExecute에서
() 메서드에 대한 비동기 작업을 사용할 수 있습니다;
10 초 동안 배경 공정 수면 스레드에서다음 매개 변수를 얻을 진행 postExecute 업데이트 진행 표시 줄에서 진행에게
을 보내 sendUpdate 메서드를 호출합니다.
doc : AsyncTask ... UI 스레드에서 작업을 차단하지 마십시오 !!! – Selvin
@ 셀빈,하지만 어쩌면 그것은 AsyncTask 아니에요 –
난 그냥 그가 ** 사용해야 ** 지적 : – Selvin