问题描述:
1)ActivityGroup负责Activity之间的切换。启动之后Activity A中有一个List列表,点击List中的Item启动Activity B,(此处启动B用的是Intent.FLAG_ACTIVITY_CLEAR_TOP),每次都会OnCreate一个新的,在B中用线程池ExecutorService去下载A中List 0-5Item的内容(ExecutorService是静态的放在了一个Util类中),从网络返回的数据后,调动一个函数(假设叫F吧)动态创建View加入到List中管理,并通过PagerAdapter将创建View在ViewPager中显示出来。
2)按返回键,从B中返回到A,A中的List显示出来。然后继续点击List的Item启动B。
3)如果慢慢按,也就是说启动B之后0-5个Item都下载完成,ViewPager翻页没有任何问题,返回继续操作没有问题,但是如果非常快的按在B启动后页面内容还没显示出来的时候就立刻返回,然后再点击List启动B,快速的来来回回几次。偶尔会发生崩溃,报错PagerAdapter在instantiateItem中想ViewPager中AddView的时候发生错误(  ((ViewPager) collection).addView(m_ListView.get(position)); ),说在添加View之前必须让它的父容器类调用RemoveAllViews().也就是说此刻View有了一个父容器。从 Log看此刻B每次都是新创建出来的,数据下载好了之后,调用函数F动态创建的View也是新生成的,加入ViewPager中,怎么会出现有了父容器呢?我自己的猜测肯能和多线程有关吧。如果没有网络异步下载应该不会出现这样的问题?但是没能解决,请朋友们帮忙看看?
多谢各位朋友。多线程android