我是一位经验丰富的Android开发人员,可惜的是,我仍然无法有效应对基本问题,例如在配置更改中持续保留UI更改。
我知道,这是一个众所周知的问题,关于它的文献很多。推荐的解决方案是setRetainInstance(true)
无UI片段:
https://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html
Best practice: AsyncTask during orientation change
为了完整起见,让我来拟定方案。您有一个AsyncTask
执行网络请求,并且应该更新onPostExecute()
我看到了建议的解决方案的一些问题:
onPostExecute()
和下一个onDetach()
的调用之间不会调用onAttach()
,但是如果AsyncTask提早返回(在Activity的{{1之后, }}和调用onPause()
之前)。如果在此期间执行onDetach()
,则由于将调用onPostExecute()
,因此对视图的任何更新将不会在Activity重新启动后持续存在。onSaveInstanceState()
返回的结果是AsyncTask
在调用Activity的onPostExecute()
之前执行,那么这些视图将尚未初始化,因此尚未推送任何视图更新。是否有解决此问题的有效解决方案,可解决配置更改中的内存泄漏和状态保存问题?