我是一位经验丰富的 Android 开发人员,很遗憾我仍然无法有效地解决基本问题,例如在配置更改中持续 UI 更改。
我知道,这是一个众所周知的问题,并且有很多关于它的文献。推荐的解决方案是setRetainInstance(true)无 UI 片段:
https://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html
为了完整起见,让我画出场景。您有一个AsyncTask执行网络请求并应该在onPostExecute()
我看到建议的解决方案存在一些问题:
- 建议的解决方案说,保证在调用和下一次
onPostExecute()之间不会被调用,但是如果 AsyncTask 提前返回(在 Activity 之后和调用之前)怎么办。如果在此期间执行,因为将被调用,对视图的任何更新都不会在 Activity 重新启动后持续存在。onDetach()onAttach()onPause()onDetach()onPostExecute()onSaveInstanceState() - 其次,如果在调用 Activity 之前执行的
AsyncTask返回,那么视图将不会被初始化,以便推送任何视图更新。onPostExecute()onCreate()
是否有针对此问题的有效解决方案来解决内存泄漏和跨配置更改的状态保存?