错误堆栈:

java.lang.ArrayIndexOutOfBoundsException: length=0; index=1
        at android.support.v4.util.SimpleArrayMap.indexOf(SimpleArrayMap.java:83)
        at android.support.v4.util.SimpleArrayMap.put(SimpleArrayMap.java:381)

示例错误代码:

final ArrayMap testArrayMap = new ArrayMap();

        new  Thread("线程1"){
            @Override
            public void run() {
                super.run();
                while (true){
                    testArrayMap.put("aaa","fffff");
                }
            }

        }.start();

        new  Thread("线程2"){
            @Override
            public void run() {
                super.run();
                while (true){
                    testArrayMap.clear();
                }
            }

        }.start();

错误原因:
ArrayMap 不支持多行程,请在一个线程里面使用。不然会导致数组越界。如果想在多线程里面使用,请使用HasTable。

google 的 ArrayMap 本身就没有支持多线程,在最新的support 包里面,如果你还多线程使用ArrayMap,就会throw CME (ConcurrentModificationException)

相关文章:

  • 2021-06-24
  • 2021-06-11
  • 2022-02-15
  • 2022-12-23
  • 2021-09-06
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-22
  • 2022-12-23
  • 2021-04-24
  • 2021-09-16
  • 2022-12-23
  • 2021-10-20
  • 2021-06-20
相关资源
相似解决方案