2013-08-28 3 views
-2

У меня есть фрагменты, все из них используют очень простые асинтеты, которые в основном похожи друг на друга и производятся из одной и той же базовой задачи. В большинстве из них я вижу диалог диалога хода выполнения, пока они выполняются, но в одном он не отображается, несмотря на то, что задача выполнена правильно.Диалог прогресса 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

Можете ли вы добавить код? –

+0

Используете ли вы такой же контекст во всех фрагментах для AsyncTask? (не ApplicationContext) – Yoric

+0

Да, я не передаю непосредственно контекст, который они находятся в файле-фрагментаторе в той же активности – 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

Вы не упомянули onPreExecute() в своей асинтете, которая обычно имеет код для отображения Progress dilaog. Без него вы не сможете увидеть диалог прогресса –

Смежные вопросы