Viewpager和背景线程

时间:2012-11-30 03:27:33

标签: android android-viewpager

每当我在ViewPager中滑动时,我都有以下过程

  1. 在instantiateItem中创建一个新的ListView实例。
  2. 将此ListView添加到ViewPager。
  3. 启动后台线程以加载数据,然后向UI发送消息 线程将加载的数据设置为在步骤1中创建的Listview。
  4. 我的问题是,如果我非常快速地滑动,我的猜测是在步骤3中创建的线程很多,不需要运行,所以,我该如何处理这种情况呢? 如何阻止这些线程运行?

    感谢

1 个答案:

答案 0 :(得分:1)

我建议使用ViewPager.setOffscreenPageLimit(MAX_SIZE)并将MAX_SIZE设置为您认为合适的任何内容。页面超出此范围后

public void destroyItem(ViewGroup container, int position, Object object)

将被调用。在此,您可以通过调用cancel来处理该线程,并执行该页面所需的任何其他操作。无论滚动速度有多快,这都将限制同时运行的线程数。

当用户滚动回到其范围时,将再次调用

instantiateItem项。