Skip to content

NetworkUtils for 循环同步操作问题 #1395

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
aobase-noodle opened this issue Dec 14, 2020 · 4 comments
Open

NetworkUtils for 循环同步操作问题 #1395

aobase-noodle opened this issue Dec 14, 2020 · 4 comments
Assignees
Labels

Comments

@aobase-noodle
Copy link

描述 Bug

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

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

相关代码

image

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

异常堆栈

如截图

截图

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

@hardlove
Copy link

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)

`

@aobase-noodle
Copy link
Author

aobase-noodle commented Apr 18, 2022 via email

@RainFool
Copy link

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

@aobase-noodle
Copy link
Author

aobase-noodle commented Jun 28, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants