2012-01-30 2 views
0

나는 ProgressDialog에 메일을 보내는 중 어디에 있는지 보여줍니다. 진행 대화 상자는 블로그 중 하나가 활동을 가로 질러 ProgressDialog이라는 힌트를 주면서 활동과 수업 전반에 걸쳐 작동합니다. 내가 onCreateDialog()진보를위한 메시지 변경 안드로이드

@Override 
protected Dialog onCreateDialog(int id) { 

    if(id == ID_SENDING_MAIL){ 
    ProgressDialog loadingDialog = new ProgressDialog(this); 
     loadingDialog.setMessage("Sending Email..."); 
    loadingDialog.setIndeterminate(true); 
    loadingDialog.setCancelable(true); 
    return loadingDialog; 
} 

return super.onCreateDialog(id); 
} 

그때 나는 메일이 내가 메일 클래스를 인스턴스화 및 매개 변수의 호스트를 보내 실행 방법은 다음과 같습니다

showDialog(ID_SENDING_MAIL); 
new Thread(new Runnable(){ 
    public void run(){//I am calling Mail Send here 

     dismissDialog(Email.ID_SENDING_MAIL); 
    } 
}).start(); 

보내고 전화를 무시하고 같은

아래는 코드입니다. 이것은 완전히 작동하지만 ProgressDialog에 다른 메시지를 설정하려고합니다. onCreateDialog()와 함께 사용하면

Sending Mail then 
Mail Sent Successfully 

를 호스트에 연결시처럼 우리는 어떻게 이러한 변경을 수행 할 수 있습니다. 답장을 기다리겠습니다. 덕분에 .

답변

1

가장 좋은 방법은 AsyncTask를 사용하여이 작업을 수행합니다 :

onProgressUpdate(Integer... progress) 사용 진행 PARAM의

는 (정확한 메시지가 있어야한다 와트 결정하기 위해 다른 방법의 swith를 사용) ProgressDialog

+0

감사합니다. 나는 MailUtil과 같은 Mail 클래스를 사용하고있다. branchEmail = new MailUti ("username", "password"); ' 그러면 'branchMail.setSubject', message와 같은 속성을 추가 할 수 있습니다. 위의 경우 AsyncTask를 어떻게 호출 할 수 있는지 알려주세요. – Mukunda

1

네트워크 스레드의 다른 단계에서 다른 메시지를 표시하려면 AysncTask을 사용하고 doInBackground() 메서드의 각 단계 후에 publishProgress 메서드를 호출하십시오. in onProgressUpdate(Integer... progress) 메서드 변경 메시지 진행 대화 상자.

+0

덕분에 원하는 메시지를 설정할 수 있습니다. 나는 MailUtil과 같은 Mail 클래스를 사용하고있다. branchEmail = new MailUti ("username", "password"); ' 그러면 'branchMail.setSubject' 메시지에 속성을 추가합니다. 위의 경우 AsyncTask를 어떻게 호출 할 수 있는지 알려주십시오. – Mukunda