-2

我有一些片段,它们都使用非常简单的异步任务,它们看起来大多相同,并且源自相同的基本任务。在它们中的大多数中,我在执行它们时看到了进度对话框循环,但在其中一个中,尽管任务已正确执行,但它并没有出现。

为什么?我使用的默认设置仅覆盖 doInBackground 和 onPostExecute。

这可能是由布局引起的(但在我的情况下它们是相似的?

这是导致问题的异步任务的代码(带有和不带有进度对话框的任务都是同一任务类的子任务)

/**
    * 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;
    }


        }

}
4

2 回答 2

0

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

于 2013-08-28T11:29:23.377 回答
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;

}

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

我不知道为什么夸大我自己的视图会隐藏进度对话框

于 2013-08-28T11:49:30.493 回答