我一直在阅读如何执行与UI通信的后台任务,我遇到了这两个解决方案。但我不知道应该选择哪一个以获得最佳选择。
1。具有setRetainInstance(true)的片段中的AsyncTask
按照此page中的指南,这似乎非常注意方向更改和内存泄漏。
2。 AsyncTaskLoader是谷歌推荐的,但有一些问题,比如this,文档也很稀疏。
我实际上更倾向于使用选项#1,但与谷歌推荐的#2相比,我不知道完全的优点/缺点。
赞赏任何意见。
答案 0 :(得分:0)
这些天你通常想在AsyncTask上使用AsyncTaskLoader,因为:
一个问题是AsyncTaskLoaders没有明确的解决方案来定期更新进度条,而AsyncTask有onProgressUpdate(...)
方法。
另请注意,您只需使用setRetainInstance(true)
并使用AsyncTaskLoaders即可。 Por que no los dos? ;)(请注意,setRetainInstance(true)
可能并不总是一个好主意,因为它可能导致上下文泄漏)