由于android的线程非安全,直接在子线程中对UI进行更新是不被允许的,同样在常用的 适配器+List<E> 组合中,子线程直接更新与适配器绑定的List,便可能产生IllegalStateException异常。

    解决办法:

        增加中间变量

        线程中更新的ListA与适配器绑定的ListB变成两个变量,

        当子线程获取数据后,使用addAll将线程获取的数据ListA深拷贝到与适配器绑定的ListB上,再进行notifyDataSetChanged();

05-11 05:15