由于android的线程非安全,直接在子线程中对UI进行更新是不被允许的,同样在常用的 适配器+List<E> 组合中,子线程直接更新与适配器绑定的List,便可能产生IllegalStateException异常。
解决办法:
增加中间变量
线程中更新的ListA与适配器绑定的ListB变成两个变量,
当子线程获取数据后,使用addAll将线程获取的数据ListA深拷贝到与适配器绑定的ListB上,再进行notifyDataSetChanged();
由于android的线程非安全,直接在子线程中对UI进行更新是不被允许的,同样在常用的 适配器+List<E> 组合中,子线程直接更新与适配器绑定的List,便可能产生IllegalStateException异常。
解决办法:
增加中间变量
线程中更新的ListA与适配器绑定的ListB变成两个变量,
当子线程获取数据后,使用addAll将线程获取的数据ListA深拷贝到与适配器绑定的ListB上,再进行notifyDataSetChanged();
转载于:https://www.cnblogs.com/lvzaina/p/3352079.html