我有一个由FragmentPagerAdapter
驱动的活动,当用户左右滑动时,该活动会添加片段。
当前添加的该子片段是静态的,包含项目的ListView
。我打算使用和AysncTask
来获取ListView
的项目,但是此过程最多可能需要10-15秒。
我仍然迷失了一些东西:
我的AsyncTask
应该从哪个方法调用?是onCreate
的Fragment
方法吗?我只想在Fragment聚焦时调用AsyncTask
。
但是,最大的问题是,当AysncTask
加载时用户从屏幕上滑动离开时,我的AsyncTask
会发生什么情况。活动被销毁了吗?有什么方法可以防止活动被破坏吗?如果我不这样做,则AsyncTask
的所有进度都会丢失,并且当AsyncTask
成为焦点时,我必须重新调用Fragment
。
谢谢。
速度缓慢的原因:
我正在抓取大约150条记录的页面,而jSoup真的非常慢。不使用服务的问题是数据更改的可能性很高,我不想“预先抓取”数据。
@Fildor建议使用Loader
进行繁重的操作。快速浏览Loader
实现表明,该功能使您可以在短时间内持久保存数据,例如方向更改。我仍然想知道ViewPager
在Fragments
上的摆动是否会使数据暂时保留在Loader
中。
最佳答案
您听说过Loaders吗?我认为这正是您想要使用的...