UI在配置更改中的更新:怪异点

时间:2018-12-04 00:03:06

标签: android android-lifecycle android-configchanges

我是一位经验丰富的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()

中的UI

我看到了建议的解决方案的一些问题:

  • 建议的解决方案说,保证在onPostExecute()和下一个onDetach()的调用之间不会调用onAttach(),但是如果AsyncTask提早返回(在Activity的{{1之后, }}和调用onPause()之前)。如果在此期间执行onDetach(),则由于将调用onPostExecute(),因此对视图的任何更新将不会在Activity重新启动后持续存在。
  • 第二,如果onSaveInstanceState()返回的结果是AsyncTask在调用Activity的onPostExecute()之前执行,那么这些视图将尚未初始化,因此尚未推送任何视图更新。

是否有解决此问题的有效解决方案,可解决配置更改中的内存泄漏和状态保存问题?

0 个答案:

没有答案