2013-08-28 58 views
-2

我有一些片段,他們都使用非常簡單的asynctasks,他們大多看起來像是一樣的,都是從相同的基礎任務派生而來的。 在他們中的大多數中,我會看到進度對話框的旋轉,但它們在執行時卻沒有出現,儘管任務執行正確。AsyncTask進度對話框沒有出現在某些片段中

爲什麼?我使用默認設置,只覆蓋doInBackground和onPostExecute。

難道是通過佈局的原因(但對我來說,他們是相似的?

這是的AsyncTask造成問題的原因(有和沒有進度對話框這兩個任務的代碼是相同的任務類的子)

/** 
    * AsyncTask che richiede i dati al server 
    * @author pc 
    * 
    */ 
    class MuroTask extends GetDataTask { 


     JSONObject jobject; 
     ServerInterface server = new ServerInterface(); 



    @Override 
    protected Boolean doInBackground(String... params) { 

     try { 
      jobject = server.runScriptObject(script_name, null); 
     } catch (IOException e) { 

      e.printStackTrace(); 
      return false; 
     } 


     return true; 
    } 


    @Override 
    protected void onPostExecute(final Boolean success) { 


    if (success) { 
     if (jobject != null){ 
      if (parseJSON(jobject)){ 
      isEmpty = false; 
      setContentMuro(); 
      } 
      else{ 
       isEmpty = true; 
      } 
     } 
     else{ 
      isEmpty = true; 
     } 
    }else{ 
     Toast.makeText(getActivity(),R.string.failed_connection, Toast.LENGTH_SHORT).show(); 
     return; 
    } 


     } 

} 
+0

你可以添加一些代碼嗎? – 2013-08-28 11:04:53

+0

您是否在AsyncTask的所有片段中使用相同的上下文? (不是ApplicationContext) – Yoric

+0

是的,我沒有直接傳遞他們在同一活動中的fragmentpager中的上下文 – codareee

回答

0

所以我固定它的片段類我

@Override 
public View onCreateView(LayoutInflater inf, ViewGroup container, Bundle b){ 
    frag_view = inf.inflate(R.layout.list_with_margins, container, false); 

    return frag_view; 

} 

我刪除了這部分,因爲它甚至不再需要,並出現加載對話框。

我不知道爲什麼誇大我自己的看法是隱藏進度對話框

0

必須使用getActivity()的上下文中的片段進度對話框的AsyncTask。

+0

我正在使用標準進度對話框,我沒有寫出一行代碼讓它顯示在另一個片段 – codareee

+0

請發佈一些代碼,以便人們能夠幫助你... –

+0

你還沒有提到onExExcute()在你的asyntask中,它通常有代碼顯示Progress dilaog。沒有它,你將無法看到進度對話框 –