长时间运行ViewPager中碎片的AsyncTasks

时间:2012-09-27 11:49:54

标签: java android android-asynctask android-fragments android-viewpager

我有一个由FragmentPagerAdapter驱动的活动,当用户左右滑动时,会添加片段。

添加的子片段目前是静态的,包含ListView个项目。我打算使用AysncTask获取ListView的项目,但此过程可能需要10-15秒。

我仍然迷失了一些东西:

应该从哪个方法调用AsyncTask?它是onCreate的{​​{1}}方法吗?我只想在片段聚焦时调用Fragment

然而,最大的问题是,当用户在AsyncTask加载时滑离屏幕时,AysncTask会发生什么。活动被破坏了吗?有没有办法阻止活动被破坏?如果我不这样做,AsyncTask取得的所有进展都将丢失,当AsyncTask成为焦点时,我必须重新调用AsyncTask

感谢。


缓慢的原因:

我正在抓一个大约有150条记录的页面,而且jSoup真的很慢。不使用服务的问题是数据有很大的变化概率,我不想“预先刮掉”数据。

@Fildor建议使用Fragment进行繁重的工作。快速查看Loader实施表明,您可以在短时间内保留数据,例如方向更改。我仍然想知道LoaderViewPager之间的摆动是否允许数据暂时存在于Fragments中。

2 个答案:

答案 0 :(得分:2)

你听说过Loaders吗?我认为这正是你想要使用的......

答案 1 :(得分:0)

使用FragmentStatePagerAdapter 你可以简单地从片段的onCreateView启动asyncTask