最佳实践:方向更改期AsyncTask 在另一个线程中运行复杂任务是一件好事。但是当AsyncTask仍在运行时有方向更改或其他配置更改时,将Activity消除并重新启动当前电流。并且当实例AsyncTask连接到该活动时,它会失败并导致“强制关闭”消息窗口。所以,我正在寻找某种“最佳实践”来避免这些错误并防止AsyncTask失败。到目前为止我看到的是:禁用方向更改。(当然不是你应该如何处理它。)让任务存活并通过新的活动实例更新它 onRetainNonConfigurationInstance只需在销毁时取消任务,Activity并Activity在再次创建时重新启动它。将任务绑定到应用程序类而不是活动实例。“shelf”项目中使用的一些方法(通过onRestoreInstanceState)一些代码示例:屏幕旋转期间的Android AsyncTasks,第一部分和第二部分ShelvesActivity.java你能帮我找到最好的方法来解决问题并且易于实现吗?代码本身也很重要,因为我不知道如何正确解决这个问题。
3 回答
慕斯王
TA贡献1864条经验 获得超2个赞
千万不要使用android:configChanges
来解决这个问题。这是非常糟糕的做法。
千万不要使用Activity#onRetainNonConfigurationInstance()
两种。这种模块化程度较低,不适合Fragment
基于应用程序。
您可以阅读我的文章,描述如何使用保留的Fragment
s 处理配置更改。它解决了保持AsyncTask
旋转变化很好的问题。你基本上需要托管AsyncTask
里面Fragment
,叫setRetainInstance(true)
上Fragment
,报告AsyncTask
的进度/结果返回给它Activity
通过保留Fragment
。
- 3 回答
- 0 关注
- 337 浏览
添加回答
举报
0/150
提交
取消