点击button后开启分线程网络请求

最近一个项目涉及到好多点击button进行开分线程网络请求,但是问题来了,如果button不做处理,用户不断的去点击button,就会有一堆线程创建,应用卡死,或者在没网络的时候也一直去点击button。有没有好的处理方法,求教!

阅读 6.7k
8 个回答

可以设置两次点击的时间间隔,如果小于某段时间,第二次点击就不响应

1.先判断是否有网络,网络不可用直接return
2.过滤重复点击
3.如果希望之前的请求没返回前不再触发新的请求,可以设置一个状态标志

新手上路,请多包涵

用户第一次点击button的时候给出友好的提示界面:如diaolg,提示用户等待数据返回。
不然用户体体验上来说我点击按钮没有反应,我会一直点击。
希望对你有帮助。

  1. 用线程池限制最大线程数量.

  2. 不能同时发起同一个url的网络请求

  3. 缓存

以上Volley都能做到

楼上也说了,这种情况必须使用网络框架啊,Volley确实很合适,我推荐一下自己写的Volley源码分析,希望对你有帮助:https://github.com/wangzhengy...

发起请求后,屏蔽掉Button的Click事件,请求完成后恢复。

点击按钮后按钮设为不可点击,如果可以的话弹出正在请求的dialog 请求到数据后取消dialog 按钮设为可以点击

写个判断啊 设置一个标志,TAG = false ;if(!TAG){//执行}
当开启之后TAG= true;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题