多线程操作全局静态List的问题

shengshengBoom 2017-09-26 10:33:53
本人写代码的时候遇到一个问题,就是我在子线程获取数据,然后add数据到全局list,然后排列,再post到Main,然后Main发送广播到Fragment,更新Adapter,这个时候应为adapter的数据源也是这个全局LIst,那么可能这个主线程刷新的时候,子线程获取到数据又往全局list添加了数据,会导致adapter报错,我这种设计该怎么更改呢
...全文
508 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
江三木洛 2017-09-26
  • 打赏
  • 举报
回复
adapter为什么会报错,添加了刷新也是对的啊 要么你就在添加数据和刷新数据的方法里加锁呗
xiaohuh421 2017-09-26
  • 打赏
  • 举报
回复
多线程同时访问一个东西的时候, 你就需要做多线程同步. 加锁是唯一解决办法.
Jing丶無雙 2017-09-26
  • 打赏
  • 举报
回复
不要这个全局的list,直接将子线程获取数据广播到Fragment,然后把这个新的数据赋值给你adapter里面的list对象,最后通知UI线程调用adapter.notifyDataSetChanged()

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧