为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

猛跑小猪 2019-08-15 14:37:07
最佳实践:方向更改期AsyncTask 在另一个线程中运行复杂任务是一件好事。但是当AsyncTask仍在运行时有方向更改或其他配置更改时,将Activity消除并重新启动当前电流。并且当实例AsyncTask连接到该活动时,它会失败并导致“强制关闭”消息窗口。所以,我正在寻找某种“最佳实践”来避免这些错误并防止AsyncTask失败。到目前为止我看到的是:禁用方向更改。(当然不是你应该如何处理它。)让任务存活并通过新的活动实例更新它 onRetainNonConfigurationInstance只需在销毁时取消任务,Activity并Activity在再次创建时重新启动它。将任务绑定到应用程序类而不是活动实例。“shelf”项目中使用的一些方法(通过onRestoreInstanceState)一些代码示例:屏幕旋转期间的Android AsyncTasks,第一部分和第二部分ShelvesActivity.java你能帮我找到最好的方法来解决问题并且易于实现吗?代码本身也很重要,因为我不知道如何正确解决这个问题。
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

千万不要使用android:configChanges来解决这个问题。这是非常糟糕的做法。

千万不要使用Activity#onRetainNonConfigurationInstance()两种。这种模块化程度较低,不适合Fragment基于应用程序。

您可以阅读我的文章,描述如何使用保留的Fragments 处理配置更改。它解决了保持AsyncTask旋转变化很好的问题。你基本上需要托管AsyncTask里面Fragment,叫setRetainInstance(true)Fragment,报告AsyncTask的进度/结果返回给它Activity通过保留Fragment


查看完整回答
反对 回复 2019-08-15
  • 3 回答
  • 0 关注
  • 337 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信