我有一些片段,所有片段都使用非常简单的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;
}
}
}
答案 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;
}
我删除了这部分,因为它甚至不再需要了,并且出现了加载对话框。
我不知道为什么我自己的观点正在隐藏进度对话框