AndroidUtilCode
AndroidUtilCode copied to clipboard
NetworkUtils for 循环同步操作问题
描述 Bug
NetworkUtils 支持注册多个网络变化监听器
但是在内部的回调中,使用for 循环分发给外部注册的监听器
此时有概率产生ConcurrentModificationException
- AndroidUtilCode 的版本:utilcode:1.29.0
- 出现 Bug 的设备型号:理论为全部
- 设备的 Android 版本:理论为全部
相关代码

看了下最新版1.30.5 对应NetworkUtils 896 行也是这样的
异常堆栈
如截图
截图
如果有的话请添加屏幕截图以帮助解释问题。

1.30.6 遇到同样问题
`
main(1)
java.util.ConcurrentModificationException
解析原始 1 java.util.HashMap$HashIterator.nextEntry(HashMap.java:851) 2 java.util.HashMap$KeyIterator.next(HashMap.java:885) 3 com.blankj.utilcode.util.NetworkUtils$NetworkChangedReceiver$3.void run()(NetworkUtils.java:900) 4 android.os.Handler.handleCallback(Handler.java:836) 5 android.os.Handler.dispatchMessage(Handler.java:103) 6 android.os.Looper.loop(Looper.java:234) 7 android.app.ActivityThread.main(ActivityThread.java:6283) 8 java.lang.reflect.Method.invoke(Native Method) 9 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063) 10 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
`
来信已收到,会尽快回复 = = 谢谢! -- 李圣杰
- 几年了这个bug没有修复,说明这个仓库很可能已经不维护了
- 不太明白这里为什么会造成ConcurrentModificationException,for循环便利listener但是对listener的操作都是在主线程的
- 大佬目前有什么办法规避吗 @TpOut @Blankj @
来信已收到,会尽快回复 = = 谢谢! -- 李圣杰