2011-08-31 2 views
1

누군가 스레드가 완료 될 때까지 다음 코드의 ProgressDialog가 UI에 표시되지 않는 이유를 말해 줄 수 있습니까? 사전 :다른 스레드가 완료 될 때까지 UI 스레드에 진행 대화 상자가 표시되지 않습니다.

+0

스레드 대신 'AsyncTask'로 설정해보십시오. 내가 수집 한 것에서, 그것은 안드로이드의 스레드에서 뭔가를하는 "올바른"방법 인 것처럼 보인다. 'onPreExecute()'에서 progressdialog를 열고,'doInBackground()'에서 바우처를 확인한 다음,'onPostExecute()'에 대화 상자를 닫습니다. – Rob

답변

1

전화 start() 방법

Common.prog = ProgressDialog.show(cContext, "Please wait", "Checking Voucher...", true); 

final Handler handler = new Handler() { 
    public void handleMessage(Message msg) { 
     Common.prog.dismiss(); 
    } 
}; 

Thread searchThread = new Thread() { 
    public void run() { 
     processCoupon(voucherCodeEditText.getText().toString()); 
     handler.sendEmptyMessage(0); 
    }; 
}; 
searchThread.run(); 

감사 :

searchThread.start(); 

실행() 메소드는 새로운 스레드에서의 Runnable 실행하지 않습니다.

UI 스레드로 돌아 가기 사용하려는 경우 runOnUiThread().

관련 문제