2011-10-29 6 views
0

시간이 많이 걸리는 기능 업로드/* 약 10 초 * /.ProgressDialog가 깜박임을 표시하지 않습니다.

 pd = ProgressDialog.show(Uploader.this, 
       "Connecting...", "Uploading", 
       true, false); 
     Uploader.this 
     .runOnUiThread(new Runnable() { 
      public void run() { 

       upload(); 
       handler.sendEmptyMessage(0); 

      } 
     }); 

문제가 진행이 처음 업로드처럼, 10 초 주위 만 깜박 게재하고 쇼를 호출하지 않는다는 것입니다 것처럼해서 ProgressDialog를 보여주기 시작 업로드하기 전에 노력하고 업로드가 완료되면해서 ProgressDialog를 기각하고 내가 노력 그리고 해산 (나는 스레드 위에 보여 주려고했는데, 그것은 동일합니다). 무엇을할까요? (업로드가 무효 기능 임)

답변

3

업로드 코드가 UI 스레드에서 실행되지 않아야합니다. 그럴 경우 해당 스레드가 진행 대화 상자를 표시하는 등의 작업을 수행하지 못하도록 차단합니다. 진행 대화 상자를 저장하고, 표시하고, 업로드를 수행 할 새 스레드를 생성하고, 업로드가 완료되면 처리기를 사용하여 UI 스레드로 돌아가서 진행 대화 상자를 닫습니다.

+0

+1 - 동의합니다. @Damir 고통없는 스레딩을 위해서'AsyncTask'를 사용해야합니다. –

+0

@Adil Soomro AsyncTask를 사용하면 도움이 될 수 있습니까? 업데이트가 무효이고 매개 변수가 필요없는 경우 에 넣을 항목은 무엇입니까? – Damir

+0

'AsynTask '를 사용하고 모양을 가지고 있습니다. [here] (http://stackoverflow.com/questions/2702695/android-async-task-progressdialog-isnt-showing-until-background-thread- 완료) –

1

현재 진행률 대화 상자를 실행하려고하는 UI 스레드에서 다른 스레드 대신 업로드 작업을 수행하는 이유는 무엇입니까?

관련 문제