AndroidUtilCode icon indicating copy to clipboard operation
AndroidUtilCode copied to clipboard

NetworkUtils for 循环同步操作问题

Open aobase-noodle opened this issue 4 years ago • 4 comments

描述 Bug

NetworkUtils 支持注册多个网络变化监听器 但是在内部的回调中,使用for 循环分发给外部注册的监听器
此时有概率产生ConcurrentModificationException

  • AndroidUtilCode 的版本:utilcode:1.29.0
  • 出现 Bug 的设备型号:理论为全部
  • 设备的 Android 版本:理论为全部

相关代码

image

看了下最新版1.30.5 对应NetworkUtils 896 行也是这样的

异常堆栈

如截图

截图

如果有的话请添加屏幕截图以帮助解释问题。 image

aobase-noodle avatar Dec 14 '20 02:12 aobase-noodle

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)

`

hardlove avatar Apr 18 '22 06:04 hardlove

来信已收到,会尽快回复 = = 谢谢!      -- 李圣杰

aobase-noodle avatar Apr 18 '22 06:04 aobase-noodle

  1. 几年了这个bug没有修复,说明这个仓库很可能已经不维护了
  2. 不太明白这里为什么会造成ConcurrentModificationException,for循环便利listener但是对listener的操作都是在主线程的
  3. 大佬目前有什么办法规避吗 @TpOut @Blankj @

RainFool avatar Jun 28 '23 03:06 RainFool

来信已收到,会尽快回复 = = 谢谢!      -- 李圣杰

aobase-noodle avatar Jun 28 '23 03:06 aobase-noodle