我有一个由 FragmentPagerAdapter
提供支持的 Activity ,它会在用户左右滑动时添加 fragment 。
添加的这个子 fragment 当前是静态的并且包含项目的 ListView
。我打算使用 AysncTask
来获取 ListView
的项目,但此过程可能需要 10-15 秒。
我仍然迷失在一些事情上:
应该从哪个方法调用我的 AsyncTask
?会不会是 Fragment
的 onCreate
方法?我只希望在 Fragment 处于焦点时调用 AsyncTask
。
然而,最大的问题是,当用户在加载 AsyncTask
时从屏幕上滑开时,我的 AysncTask
会发生什么。 Activity 被销毁了吗?有什么办法可以防止 Activity 被销毁吗?如果我不这样做,AsyncTask
取得的所有进展都会丢失,我必须在 Fragment
进入时重新调用 AsyncTask
专注。
谢谢。
慢的原因:
我正在抓取一个包含大约 150 条记录的页面,而 jSoup 真的非常慢。不使用服务的问题是数据很可能发生变化,我不想“预抓取”数据。
@Fildor 建议使用 Loader
来完成繁重的工作。快速查看 Loader
实现表明它允许您在短时间内持久保存数据,例如方向更改。我仍然想知道 ViewPager
在 Fragments
中的 Swing 是否会允许数据暂时保留在 Loader
中。
最佳答案
你听说过Loaders吗? ?我认为这正是您想要使用的...
关于java - ViewPager 中 Fragments 的长时间运行 AsyncTasks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12620719/