【问题标题】:AsyncTask progress dialog not appearing in some fragmentsAsyncTask 进度对话框未出现在某些片段中
【发布时间】:2013-08-28 11:01:03
【问题描述】:

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

为什么?我使用的默认设置仅覆盖 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;
    }


        }

}

【问题讨论】:

  • 你能添加一些代码吗?
  • 您是否在所有片段中为 AsyncTask 使用相同的上下文? (不是 ApplicationContext)
  • 是的,我没有直接传递它们在同一活动中的片段页面中的上下文

标签: android android-layout android-asynctask


【解决方案1】:

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

【讨论】:

  • 我使用的是标准进度对话框,我没有写一行代码让它显示在其他片段中
  • 你没有在你的 asyntask 中提到 onPreExecute() ,它通常有代码来显示进度对话框。没有它,您将无法看到进度对话框
  • 我没有覆盖 onPreExecute() 顺便说一句,请阅读我的答案,感谢您的回复
  • 好的,但我发布了整个课程,没有 onPreExecute()
【解决方案2】:

所以我把它固定在我原来的片段类中

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

    return frag_view;

}

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    相关资源
    最近更新 更多