我使用的是AsyncTask
内Volley
调用加载数据后加载。并且还编码以显示ProgressDialog
。但问题是onPreExecute
和onPostExecute
如此之快,ProgressDialog
不会出现,目前仍是项目是不可见的几秒钟后回收站项目将onPostExecute
回答
原因的执行你的AsyncTask
看起来非常快(速度甚至比你得到的结果是你的请求)可能是通过使用凌空内的AsyncTask您使用凌空的线程使网络请求而不是异步任务线程。
这将使它看起来像真快执行的异步任务的时候,其实你只是传递到另一个线程(凌空的线程),这样的AsyncTask已完成工作,你还有什么工作,然后凌空完成它的工作,你会得到结果。
解决方案:
要么使用Android抽射或使用AsyncTask
正如你可以在volley training docs看有没有需要AsyncTask
您还可以看到this SO AsyncTask example,确认自doInBackgound()
运行中另一个线程,就没有必要使用抽射或其他异步方法
更新来回答这个问题的意见:
如何使用ProgressDialog
与凌空?
其实很容易,因为在this other说得这么张贴例如
你只需要两个步骤:
您启动
ProgressDialog
因为你把你的凌空请求队列 ;)//请求添加到队列 rq.add(请求);
//initialize the progress dialog and show it progressDialog = new ProgressDialog(getActivity()); progressDialog.setMessage("Fetching The File...."); progressDialog.show();
你放弃你的OnResponse()
StringRequest postReq = new StringRequest(Request.Method.POST, "http://httpbin.org/post", new Response.Listener<String>() { @Override public void onResponse(String response) { tv.setText(response); // We set the response data in the TextView progressDialog.dismiss(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e(“Volly Error”,”Error: ”+error.getLocalizedMessage()); progressDialog.dismiss(); } });
感谢您的回答,现在我想使用凌空通话我没有选择。所以,如果我这样做,那么我将如何显示我自己的ProgressDialog –
@AkshayDusane我将更新答案 – HenriqueMS
@AkshayDusane检查更新的答案 – HenriqueMS
- 1. 从回收站删除单个项目
- 2. 回收项目名称?
- 3. 更新回收站视图的行项目数据
- 4. 请勿从Firebase回收站适配器移除项目?
- 5. 在回收站视图中更改行中的特定项目
- 6. 设置并获取回收站视图的项目ID
- 7. android:在回收站中一次刷一个项目
- 8. 滑动即可转至回收站中的下一个项目
- 9. 在点击回收站查看项目之间切换片段
- 10. 同时动画制作所有回收站视图项目
- 11. 回收站视图项目之间的空间
- 12. 水平回收站查看多个项目同时
- 13. 从回收站视图行中的项目调用新活动
- 14. 从回收站视图中删除项目会生成错误
- 15. 回收站查看其子项
- 16. 将onPostExecute值返回到RecyclerAdapter的onBindViewHolder中
- 17. 将文件移动到回收站(PHP)
- 18. 回收站错误
- 19. SQL Server'回收站'
- 20. 将项目保存为“收藏夹”并在其他回收站视图中显示
- 21. RecyclerView会回收NestedScrollView内的项目吗?
- 22. 标签栏项目不收回变量
- 23. 垃圾回收吃状态项目
- 24. 回收站视图中的回收站视图
- 25. 垂直回收站视图上的水平回收站视图
- 26. 将读取的项目从文件夹移回收件箱
- 27. onPostExecute回调不呼叫invalidateOptionsMenu
- 28. Android:AsyncTask onPostExecute得到空回复
- 29. onPostExecute没有收到字符串
- 30. Android - 从适配器外的回收站视图中删除项目
*我正在使用的AsyncTask内凌空通话* ...为什么加载数据里面你的对话? volley已经是一个异步库...请学习多线程中的基本流程...... *但问题是onPreExecute和onPostExecute如此之快,以至于ProgressDialog不会出现* ...我很肯定你在任何这个方法调用......让我猜测:'new Task()。execute(); dialog.dismiss();'或'中doInBackground' – Selvin
异步调用,请提供您的代码? –
不,我解雇了下onPostExecute –