AsyncTask进度对话框未出现在某些片段中

时间:2013-08-28 11:01:04

标签: android android-layout android-asynctask

我有一些片段,所有片段都使用非常简单的asynctasks,它们看起来大致相同,并且来自相同的基本任务。 在大多数情况下,我看到进度对话框在它们被执行时旋转,但是在一个中它没有出现,尽管任务被正确执行。

为什么呢?我正在使用默认设置,只覆盖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;
    }


        }

}

2 个答案:

答案 0 :(得分:0)

您必须使用getActivity()作为进程对话框AsyncTask in Fragments中的上下文。

答案 1 :(得分: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;

}

我删除了这部分,因为它甚至不再需要了,并且出现了加载对话框。

我不知道为什么我自己的观点正在隐藏进度对话框