java - ViewPager 中 Fragments 的长时间运行 AsyncTasks

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

我有一个由 FragmentPagerAdapter 提供支持的 Activity ,它会在用户左右滑动时添加 fragment 。

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

我仍然迷失在一些事情上:

应该从哪个方法调用我的 AsyncTask?会不会是 FragmentonCreate 方法?我只希望在 Fragment 处于焦点时调用 AsyncTask

然而,最大的问题是,当用户在加载 AsyncTask 时从屏幕上滑开时,我的 AysncTask 会发生什么。 Activity 被销毁了吗?有什么办法可以防止 Activity 被销毁吗?如果我不这样做,AsyncTask 取得的所有进展都会丢失,我必须在 Fragment 进入时重新调用 AsyncTask专注。

谢谢。


慢的原因:

我正在抓取一个包含大约 150 条记录的页面,而 jSoup 真的非常慢。不使用服务的问题是数据很可能发生变化,我不想“预抓取”数据。

@Fildor 建议使用 Loader 来完成繁重的工作。快速查看 Loader 实现表明它允许您在短时间内持久保存数据,例如方向更改。我仍然想知道 ViewPagerFragments 中的 Swing 是否会允许数据暂时保留在 Loader 中。

最佳答案

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

关于java - ViewPager 中 Fragments 的长时间运行 AsyncTasks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12620719/

相关文章:

java - 我对 FileWriter 使用什么 IOException

java - 封装 "modules"的最佳 GWT CodeSplitting 设计

android - iOS 通知负载中是否需要 aps 字典?我们可以为 iOS 和 Android 使用相同的有效负载吗?

java - 文本非颜色 : Why it doesn't work?

android - 中断 IntentService

java - 从哪里开始异步任务 - Android

java - 当我使用 find 时,Ebean ManyToOne 和 OneToMany 返回 null

java - 自定义对象的 BlazeDS 和 ArrayList

java - 使用 Android 卡 View 导致应用程序崩溃

php - android中的asyncTask用于从MySQL数据库检索数据