2011-11-24 99 views
0

我在我的自定義對話框中使用AsyncTask。 AsyncTask在活動中正常工作,但內部對話框不顯示ProgressDialog。 嘗試從對話框,顯示對話框,應用上下文的活動中執行privid上下文。 結果相同:沒有ProgressDialog顯示在我的屏幕上。AsyncTask在對話框中不顯示ProgressDialog

private class ClearCache_Task extends AsyncTask<Integer,Integer,Integer> 
{ 
private ProgressDialog progressBar; 
private ArrayList<String> m_subfolders; 
private final Context m_con; 

public ClearCache_Task(Context con, ArrayList<String> subfolders) 
{ 
     m_con = con; 
     m_subfolders = subfolders; 
    } 

    @Override 
    protected void onPreExecute() 
    { 
     super.onPreExecute(); 
     progressBar = new ProgressDialog(m_con); 
     progressBar.setIndeterminate(true); 
     progressBar.setCancelable(false); 
     progressBar.setMessage("Please wait..."); 
     progressBar.show(); 
    } 
    @Override 
    protected void onPostExecute(Integer result) 
    { 
     super.onPostExecute(result); 
     progressBar.dismiss(); 
    } 
    @Override 
    protected Integer doInBackground(Integer... params) 
    { 
     try 
     { 
      m_KFileStorage.ClearCache(m_subfolders); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
      Log.e(AppTag, e.toString()); 
     } 
     return 0; 
    } 
+3

請發佈您的AsyncTask的代碼。 – kaspermoerch

+0

如果執行onPreExcute,您是否檢查過debuger? –

回答

0

對不起題。 我錯誤地調用舊代碼而不是調用asynctask。:)

0

如何將對話框連接到活動?

這就是我做的:

在活動時間:

@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
     case DIALOG_PROGRESS: 
      mProgressDialog = new ProgressDialog(this); 
      mProgressDialog.setMessage(Application.string(R.string.dialog_message) + "..."); 
      mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
      mProgressDialog.setCancelable(true); 
      mProgressDialog.show(); 
      return mProgressDialog; 
     default: 
      return null; 
    } 
} 

在的AsyncTask:

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
    mActivity.showDialog(DIALOG_PROGRESS); 
} 
可以在這裏閱讀

有關對話框的詳細信息:http://developer.android.com/guide/topics/ui/dialogs.html

+0

我發現錯誤:)我忘了更換m_KFileStorage.ClearCache(在我的代碼中使用新的ClearCache_Task()。execute():) – Kostadin