1

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

  1. 在 instantiateItem 中创建一个新的 ListView 实例。
  2. 将此 ListView 添加到 ViewPager 中。
  3. 启动后台线程加载数据,然后向 UI 线程发送消息,将加载的数据设置为步骤 1 中创建的 Listview。

我的问题是,如果我刷的非常快,我的猜测是在第 3 步中创建的线程很多,不需要运行,那么,我该如何处理这种情况?如何阻止这些线程运行?

谢谢

4

1 回答 1

1

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

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

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

当用户滚动回其范围时,将再次调用 instanceiteItem 项。

于 2012-11-30T10:50:00.897 回答