2013-10-24 110 views
0

我在我的Android應用程序中以編程方式發送電子郵件。要做到這一點我用這樣一個的AsyncTask:Android AsyncTask GUI卡住

  AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() { 
      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       //testMailButton.setEnabled(false); 
       processdialog = ProgressDialog.show(context, "Test mail sturen", "wachten a.u.b..."); 
       processdialog.setCancelable(false); 

      } 

      @Override 
      protected Void doInBackground(Void... arg0) { 
       try { 
        properties.setProperty("emailTo", emailContactField.getText().toString()); 
        properties.setProperty("emailFrom", emailField.getText().toString()); 
        properties.setProperty("passWFrom", passwordField.getText().toString()); 
        String[] temp = { properties.getProperty("emailTo").toString()}; 
        setupMail.updateUserInfo(temp,properties.getProperty("emailFrom"), properties.getProperty("passWFrom")); 
        loggedIn = setupMail.sendTestMail(); 
        loginTryDone = true; 
       } catch (Exception e1) { 
        e1.printStackTrace(); 
       } 
       return null; 
      } 

      @Override 
      protected void onPostExecute(Void result) { 
       if (processdialog != null) { 
        processdialog.dismiss(); 
        testMailButton.setEnabled(true); 
       } 
      } 

     }; 

但processDialog永遠不會顯示,直到最後一刻,我也試着開始任務之前啓動它,但是這也不能工作。我不確定它爲什麼不起作用。誰能幫我?

感謝

+0

嘗試processdialog =新ProgressDialog(YourActivity.this);代替。 –

+0

你的意思是_「直到最後一刻」_ –

+0

發佈你的doinBackground和onPostExecute方法。 –

回答

0

我想你想的ProgressDialog不確定的(沒有測量負載量,因爲你不知道進展如何)。您可以使用此構造函數:

public static ProgressDialog show (Context context, CharSequence title, CharSequence message, boolean indeterminate, boolean cancelable) 

而你的情況會是這樣的:

processdialog = ProgressDialog.show(context, 
    "Test mail sturen", 
    "wachten a.u.b...", 
    true, false);