首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >最佳实践:方向变更期间的AsyncTask

最佳实践:方向变更期间的AsyncTask
EN

Stack Overflow用户
提问于 2018-03-23 01:48:26
回答 2查看 0关注 0票数 0

AsyncTask在另一个线程中运行复杂任务是一件很棒的事情。

但是,当有方向更改或其他配置更改时,AsyncTask仍在运行,当前Activity被摧毁并重新启动。作为实例AsyncTask连接到该活动时,它将失败,并导致“强制关闭”消息窗口。

因此,我正在寻找某种“最佳实践”,以避免这些错误和防止AsyncTask失败。

到目前为止我看到的是:

  • 禁用方向更改。(当然不是您应该如何处理这个问题。)
  • 让任务存活,并通过以下方法使用新的活动实例更新任务:onRetainNonConfigurationInstance
  • Activity将被销毁,并在Activity再次创建。
  • 将任务绑定到应用程序类,而不是活动实例。
  • “货架”项目中使用的一些方法(通过onRestoreInstanceState)

你能帮我找到解决问题的最佳方法吗?代码本身也很重要,因为我不知道如何正确地解决这个问题。

EN

Stack Overflow用户

发布于 2018-03-23 10:06:15

不使用android:configChanges来解决这个问题。这是很糟糕的做法。

不使用Activity#onRetainNonConfigurationInstance(),不那么模块化,也不适合Fragment-基于申请。

FragmentS,它解决了保留AsyncTask在旋转过程中变化很好。你基本上需要主持你的AsyncTask在一个Fragment,打电话setRetainInstance(true)Fragment,并报告AsyncTask进展/结果回到Activity通过保留Fragment.

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档