首页 > 代码库 > 记录开发过程中遇到的2个小bug

记录开发过程中遇到的2个小bug

1、使用新建线程结合handler来更新UI线程中的 ListView,快速点击“刷新”,会出现下面的错误:




The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread


原因:listview的数据进行了更改,而调用notifyDataChange未能及时进行更新,一般出现这种情况都是数据的获取和notifyDataChange在2个线程中导致的。


而应该都放在UI线程里。


处理方法:


在访问网络的线程里增加一个临时的数据存储结构,用handler通知UI,然后把listview的数据和notifyDataChange放在一起。


2、在Activity onStop()方法中不要放耗时比较长的操作,如停止线程,关闭数据库等。因为会阻塞第二个新启动的Activity。